AJAX MVC 4 рдореЗрдВ AJAX рдПрдХреАрдХрд░рдг

рд╕рдВрднрд╡рддрдГ рдЕрдм рдХреЛрдИ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИред Microsoft рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП ASP.NET MVC рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рд▓реЗрдЦ рдЬрд╛рд░реА рд░рдЦреВрдВ, рдореИрдВ рд╡рд┐рд╖рдп рд╕реЗ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реВрдВред

рдЬрдм рдореИрдВ рдПрдорд╡реАрд╕реА рдврд╛рдВрдЪреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдЖ, рддрдм рдпрд╣ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдерд╛, рдФрд░ @Ajax.... рдЬреИрд╕реЗ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдирд╣реАрдВ, рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рд╕реЛрдЪрд╛, рдореЗрд░реЗ рдкрд╛рд╕ $.ajax рд╕рд╛рде jQuery рд╣реИ, рдореЗрд░реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрдИ рд╕рд╛рд▓реЛрдВ рддрдХ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛, рдЕрдкрдиреЗ рдмрдбрд╝реЗ рдЕрдлрд╕реЛрд╕ рдХреЗ рд╕рд╛рде, рддреАрд╕рд░реА рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд▓ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ред рдЬреЛ рдерд╛, рдерд╛ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдорди рдмрдирд╛ рд▓рд┐рдпрд╛ рдФрд░ рдПрдорд╡реАрд╕реА рдкрд░ рджреЛ рдХрд┐рддрд╛рдмреЗрдВ рдкрдврд╝реАрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЬрд┐рди рдЙрдкрдпреЛрдЬрдХреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдб рдзрдиреНрдпрд╡рд╛рдж рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдПред

MVC рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЬрд╛рдХреНрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдмреЗрд╢рдХ рдореИрдВ рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдорддрд▓рдм рд╣реИ, рдФрд░ рдХреБрдЫ рдирд╣реАрдВ) - jQuery рдФрд░ Microsoft рдЕрдЬрд╛рдХреНрд╕ред рдХрд┐рд╕ рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ web.config UnobtrusiveJavaScriptEnabled рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди true (jQuery рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ f alse (Microsoft Ajax рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдпрджрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдорд╛рди рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - @{Html.EnableUnobtrusiveJavaScript(bool);} ред рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рдХреЗ рдЧрдарди рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред


рдЖрдк рдХрд┐рд╕ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЙрдкрдпреБрдХреНрдд рдПрдбреЗрдкреНрдЯрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред Microsoft рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рд▓рд┐рдП

 <script src="~/Scripts/MicrosoftAjax.js" type="text/javascript"></script> <script src="~/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 

, jQuery рдХреЗ рд▓рд┐рдП

 <script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script> 

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛, jQuery рд╕рдВрд╕реНрдХрд░рдг рдореЗрд░реЗ рд╕рд╛рде рдареАрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╡рд┐рдиреАрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдпрд╛рдиреА /> рд╕рд╛рде web.config ) рдХреЗ рдкрде рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред

ActionLink


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЬрдм рд╣рдо рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрдВрдЯреЗрдирд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛ред

рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╡рд┐рдзрд┐ рдХрд╛ рдЯреБрдХрдбрд╝рд╛

 public ActionResult Index() { if (Request.IsAjaxRequest()) return PartialView("_IndexPartial"); return View(); } 

Index рджреГрд╢реНрдп

 <script type="text/javascript"> jQuery(function($) { $('#update-container').click(function(e) { e.preventDefault(); $.ajax({ url: '@Url.Action("Index", "Home")', success: function(data) { $('#container').html(data); } }); }) }) </script> <div id="container"> @Html.Partial("_IndexPartial") </div> @Html.ActionLink(" ", "Index", "Home", new {}, new {id = "update-container"}) 

_IndexPartial рдЖрдВрд╢рд┐рдХ рджреГрд╢реНрдп

 <div>     </div> 

рдЬреНрдпрд╛рджрд╛рддрд░ рдРрд╕реЗ рд╣реЗрд▓реНрдкрд░ рд╡рд┐рдзрд┐ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ Html. ActionLink(...) Html. ActionLink(...) рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдб рдХреА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реВрдВ рдФрд░ рдореЗрд░реА рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВ рд╕реНрд╡рдЪреНрдЫрддрд╛ рдФрд░ рдХреЛрдб рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рд▓рдбрд╝ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ реиреи рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдШрдЯрд╛рдХрд░ Ajax.ActionLink(...) рдФрд░ Ajax.ActionLink(...) ред Ajax.ActionLink(...) рдореЗрд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ (рдмреЗрд╢рдХ, рд╕реНрдХреЗрдкреНрдЯрд┐рдХреНрд╕ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ред .load рдпрд╛ $.get рдХрд╛ рдЙрдкрдпреЛрдЧ $.get .load рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗред рдпрд╣ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рд╣рдордиреЗ рджреГрд╢реНрдп рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдХрднреА-рдХрднреА рд╣рдорд╛рд░реЗ рдмреАрдЪ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)

рд╡реЛрдЗрд▓рд╛, Index рд╡реНрдпреВ

 <div id="container"> @Html.Partial("_IndexPartial") </div> @Ajax.ActionLink(" ", "Index", "Home", new {}, new AjaxOptions{UpdateTargetId = "container"}, new {id = "update-container"}) //id     ,     

рджреЛ рдЙрдиреНрдирдд рд╡рд┐рдзрд┐рдпреЛрдВ Html.ActionLink рдФрд░ Ajax.ActionLink рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, AjaxOptions ред рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

AjaxOptions




рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХрдИ рдЧреБрдг рдирд╣реАрдВ рд╣реИрдВ, рджреВрд╕рд░реА рдУрд░, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рд╡реЗ рдПрдХ рдЪрд╛рдВрджреА рдХреА рдЧреЛрд▓реА рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рд╡рд╕реНрддреБ рдпрд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛ, рдпрд╣ рдмрд╕ рдмреЛрдЭрд┐рд▓ рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рдХрд┐рд╕ рдЧреБрдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдмреЗрд╣рддрд░ рдореИрдВ рдПрдордПрд╕рдбреАрдПрди рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред



рдЧреБрдгреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ:

Confirm - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ confirm(...) рдЕрдиреБрд░реВрдк confirm(...)

HttpMethod - рдЯрд╛рдЗрдк string , рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдордПрд╕ рдиреЗ HttpMethod рдХреЗрд╡рд▓ 2 рддрд░реАрдХреЛрдВ рддрдХ рд╣реА HttpMethod рдордЬрдмреВрд░ рдХрд┐рдпрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпреЛрдВ, рдФрд░ рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдпрд╣ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ GET , null рдпрд╛ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рд╣реИред .Trim() - рд╕рднреА POST

InsertionMode - " InsertAfter " (рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ), " InsertBefore " (рдХрдВрдЯреЗрдирд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ) рдпрд╛ " Replace " (рдХрдВрдЯреЗрдирд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ Replace ) рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрдгрдирд╛

Loading... - рдореВрд▓ рдЫрд┐рдкрд╛ рд╣реБрдЖ рддрддреНрд╡

On..... - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдп, $.ajax рд╕рдорд╛рди

Url - рдПрдХ рдЕрд▓рдЧ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдкрддреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдбрд╝реА, рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рд░реНрдЧреЛрдВ / рдирд┐рдпрдВрддреНрд░рдХреЛрдВ / рдХрд╛рд░реНрдпреЛрдВ / рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░реЗрдВ)

рдЕрдЬрд╛рдХреНрд╕ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдБ


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЙрди рддрд░реАрдХреЛрдВ рдХреА рдПрдХ рдкреНрд▓реЗрдЯ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдПрдЧрд╛ред
Ajax.ActionLinkрдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред
Ajax.RouteLinkAjax.ActionLink рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдХ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ
Ajax.BeginFormрдПрдХ рдкреНрд░рдкрддреНрд░ рддрддреНрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рднреЗрдЬреЗрдЧрд╛
Ajax.BeginRouteFormAjax.BeginForm рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧ рдкрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ, рдирд┐рдпрдВрддреНрд░рдХ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ
Ajax.GlobalizationScriptрдПрдХ рд╡реИрд╢реНрд╡реАрдХрд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рднрд╛рд╖рд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░реАрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ
Ajax.JavaScriptStringEncodeрдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдирдХреЛрдб рдХрд░рддрд╛ рд╣реИ

рдХреНрд░рдорд┐рдХ рдЧрд┐рд░рд╛рд╡рдЯ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред Ajax рдЕрдиреБрд░реЛрдз JSON / XML / рдЖрдВрд╢рд┐рдХ рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИ - рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреГрд╖реНрда рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рд╕рдорд╛рдзрд╛рди рдПрдХ рдПрдХреНрд╢рди рд╡рд┐рдзрд┐ рдореЗрдВ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрд░реЛрдз рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рд╣реИред рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ Request.IsAjaxRequest() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ: рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд▓рд┐рдПред рдЖрдЗрдП рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд╕рд░рд▓реАрдХреГрдд рдХрд╛рд░реНрдп рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВред

рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рджреЛ рддрд░реАрдХреЗ рдмрдирд╛рддреЗ рд╣реИрдВ

 [HttpPost] public ActionResult AddComment(string comment) { //  return View(); } [HttpPost] public ActionResult AddCommentAjax(string comment) { //  return Json(new {resultMessage = "   !"}); } 

AddComment рдХрд╛ AddComment

 <h3>   !</h3> 

рдФрд░ рдлрд╛рд░реНрдо рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдкреНрд░рд╕реНрддреБрддрд┐

 <script type="text/javascript"> function OnSuccessComment(data) { alert(data.resultMessage); } </script> @using (Ajax.BeginForm("AddComment", new AjaxOptions { Url = Url.Action("AddCommentAjax"), OnSuccess = "OnSuccessComment", HttpMethod = "POST" })) { @Html.TextArea("comment") <input type="submit" value=" "/> } 

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдкреНрд░рдкрддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

 <form id="comment-form" action="/Home/AddComment" method="POST" data-ajax-url="/Home/AddCommentAjax" data-ajax-success="OnSuccessComment" data-ajax-method="POST" data-ajax="true"> <textarea rows="2" name="comment" id="comment" cols="20"></textarea> <input type="submit" value=" "> </form> 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ @using (Html.BeginForm("AddComment", "Home")) рд╕реЗ рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд data- рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╡рд┐рдХрд▓рд╛рдВрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдкрддреНрд░ public ActionResult AddComment(string comment) рдХреЛ public ActionResult AddComment(string comment) рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдбреЗрдкреНрдЯрд░ data- рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдкреНрд░рдкрддреНрд░ рдЬрдорд╛ рдХреЛ public ActionResult AddCommentAjax(string comment) рдФрд░ public ActionResult AddCommentAjax(string comment) рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рд╕рдВрдЪрд░рд┐рдд JSON рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдлрд▓ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ js рдореЗрдВ OnSuccessComment рдлрд╝рдВрдХреНрд╢рди рдХреЛ OnSuccessComment рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢


рдореЗрд░реЗ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд┐рдпрд╛ рдХреЛ рд╕реБрджреГрдврд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореИрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЖрдВрдХрддрд╛ рд╣реВрдВ)ред



рдХрд┐рддрд╛рдмреЛрдВ рдХреЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рдиреЗ рдореБрдЭреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛:
ASP.NET MVC рдореЗрдВ рдЕрдЬрд╛рдХреНрд╕ (рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ ASP.NET MVC 4)
рдФрд░
URL рдФрд░ Ajax рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдБ (ASP.NET MVC 4 рдкреНрд░реЛ)




Source: https://habr.com/ru/post/In180011/


All Articles