ASP.NET MVC рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реВрдЯрд┐рдВрдЧ

рд╕рдорд╕реНрдпрд╛ рдХрдерди


ASP.NET MVC рд░реВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдФрд░ рдпреВрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ URL рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ URL рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЙрд╕рдХреЗ рдкрд╛рд╕ URL рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдореГрджреНрдз рд╕рдореВрд╣ рд╣реИред рдпрд╣ рдорд╣рд╛рди рд╣реИ! рд▓реЗрдХрд┐рди рдЬрдм рд╡реЗ рдЖрддреЗ рд╣реИрдВ рддреЛ рд╕рдм рдХреБрдЫ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ - AJAX рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ ред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдФрд░ URL рдкреАрдврд╝реА рддрдВрддреНрд░ asp.net mvc рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдк рдЕрдХреНрд╕рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

var url="/items/get-items?typeid="+typeId+"&groupid="+groupId+"&skip="+skip+"&take="+take; 

рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдпрд╣ рдХреЛрдб рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ URL рдХреЗ рдЕрдВрддрд┐рдо рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреА рд╣реИред рдЕрдм, рдпрджрд┐ рдЖрдкрдХреЛ URL рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ URL рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдпрд╣ рдЧрд▓рддрд┐рдпрд╛рдВ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдХрд╣реАрдВ рд╡реЗ рдмрджрд▓ рдЧрдП, рдХрд╣реАрдВ рд╡реЗ рднреВрд▓ рдЧрдП, рдХрд╣реАрдВ рд╡реЗ рд╕реАрд▓ рдХрд░ рджрд┐рдП рдЧрдПред

рдПрдбрд╡рд╛рдВрд╕ рд╕рд░реНрд╡рд░ рдЬреЗрдирд░реЗрд╢рди URL


рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рджреГрд╢реНрдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк рдХреЛ рддреБрд░рдВрдд рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕рд░реНрд╡рд░ рдкрд░ URL рдХреЛ рдкреВрд░реНрд╡-рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдореЗрдВ рддрддреНрд╡ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реИ- * рд╡рд┐рд╢реЗрд╖рддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
 <div id="some_container" data-url="@Url.Action("Action","Controller",new {Id=10})"> ... </div> 

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

рдорд╛рд░реНрдЧрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдп


рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕реАрдзреЗ рд░реВрдЯ URL рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП ASP.NET MVC рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЗрд╕реЗ рдЫреЛрдЯреЗ рд░реВрдЯрдЬреЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ WebForms рдФрд░ ASP.NET MVC (рд╕рдВрд╕реНрдХрд░рдг 2 рд╕реЗ рд╢реБрд░реВ) рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЖрдк рдЗрд╕реЗ Nuget рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 <script src="@RouteJs.RouteJsHandler.HandlerUrl"></script> 

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

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рд░реНрдЧ

 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 

рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
 >Router.action('Home','Index') "/Home/Index" >Router.action('Home','Index',{id:1}) "/Home/Index/1" >Router.action('Home','Index',{type:1, group:2}) "/Home/Index?type=1&group=2" 

рдФрд░ рдпрджрд┐ рдЖрдк рдХреНрд╖реЗрддреНрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ?

 public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "TestArea_default", "TestArea/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } 

рд╣рдо рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:
 >Router.action('Home','Index',{area:'TestArea'}) "/TestArea/Home/Index" 

рдкреНрд░рддрд┐рдмрдиреНрдз

RouteJs рдбрд┐рдлрд╝реЙрд▓реНрдЯ regexp рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 routes.MapRoute( name: "DefaultWithConstraint", url: "constr/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, constraints:new {action="^ConstrAction$"} 

рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
 >Router.action('Home','Index') "/Home/Index" >Router.action('Home','ConstrAction') "/constr/Home/ConstrAction" 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдкрдХреЗ рдХрд╕реНрдЯрдо IRouteConstaints рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд░рд╛рдЙрдЯрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдХрд╕реНрдЯрдо рдмрд╛рдзрд╛рдПрдВ рдХрд┐рд╕реА рднреА рдорд╛рд░реНрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред (рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ [HideRoutesInJavaScript] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ [HideRoutesInJavaScript] ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред

рдХреИрд╢рд┐рдВрдЧ

рдЙрддреНрдкрдиреНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХреНрд╕рдкрд╛рдпрд░ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рджреА рдЧрдИ рд╣реИ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ 1 рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреГрд╖реНрда рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд▓рд┐рдВрдХ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
  <script src="/routejs.axd/2512dbb48b9018a4c8f9eac5fb92f903800d94da/router.js"></script> 

рд▓рд┐рдВрдХ рдореЗрдВ рдХреБрдЫ рд╣реИрд╢ рд╣реИ, рдЬреЛ рдорд╛рд░реНрдЧреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдмрдирддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ рдорд╛рдиреНрдп рд░реВрдЯ рдЯреЗрдмрд▓ рд╣реИред

JsAction рд▓рд╛рдЗрдмреНрд░реЗрд░реА


JsAction рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реВрдЯрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ Nuget рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (jQuery рдХреЗ рдмрд╛рдж рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ):
 @Html.JsActionScript() 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╡рд┐рд╢реЗрд╖ [JsAction] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХреА рдЧрдИ рд╣реИ:
 [JsAction] [HttpGet] public JsonResult Do(int a, int b) { return Json(a + b, JsonRequestBehavior.AllowGet); } 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдирд╛рдо рд╕реЗ рдкреБрдХрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $(function() { JsActions.Home.Do(1, 3); }) 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдЯ URL рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХрд░рддреА рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдХрдИ рд╕реБрдЦрдж рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ GET рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдзрд┐ рдХреЛ POST рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЗ рдХрд░реНрдо рдЖрдк [HttpPost] рдХреЗ рд▓рд┐рдП [HttpGet] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ $ .Ajax (рдпрджрд┐ рдЖрдк jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ) рдХреА рдХреЙрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдкрд░ рдХреЙрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЛ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдЕрдм рд╕реЗ, рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рдПрдВрдЧреЗред рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЙрд╕реА рддрд░рд╣ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХреЙрд▓ $ .ajax () рдореЗрдВред
 $(document).ready(function () { JsActions.Home.Do(1,2).then(function(data){ alert(data); }); }); 

рдпрджрд┐ рдЖрдк рд╕рдВрд╕реНрдХрд░рдг 1.5 рд╕реЗ рдкрд╣рд▓реЗ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рдорд╛рди рддрдВрддреНрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ:
 $(document).ready(function () { var ret = JsActions.Home.Do(1, 2, { success: function (data) { alert(data); } }); }); 


IntelliSense

JsAction Visual Studio рдореЗрдВ Intellisense рдЗрдВрдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА рд╡рд┐рдзрд┐ рдореЗрдВ xml рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
  /// <summary> /// Sums two numbers /// </summary> /// <param name="a">First number</param> /// <param name="b">Second number</param> /// <returns></returns> [JsAction()] [HttpGet] public JsonResult Do(int a, int b) { return Json(a + b, JsonRequestBehavior.AllowGet); } 

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ "XML рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдлрд╛рдЗрд▓" рдЯрд┐рдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:



рдЙрд╕рдХреЗ рдмрд╛рдж, рдЯреВрд▓реНрд╕-> рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░-> рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ JsAction-GenDoc рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, Scripts рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ JsActions.vsdoc.js рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╕рдордп, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ:



рдХреИрд╢рд┐рдВрдЧ

рдкрд┐рдЫрд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдкреНрд░рд╕реНрддреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реВрдЯрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдпрд╛ рдЙрд╕ рдЙрдкрдХрд░рдг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЪреБрдирд╛рд╡ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рд╡рд░реАрдпрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред RouteJs рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдЫ рднреА рдХрд┐рдП рдмрд┐рдирд╛ url рд░реВрдЯрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред JsAction, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдФрд░ рд▓рдЪреАрд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдВрдХ:

  1. рд▓реЗрдЦ рдореЗрдВ рдЙрдард╛рдП рдЧрдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд░реЗрдЬрд░рдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд░реЗрдЬрд░ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  2. https://github.com/zowens/ASP.NET-MVC-JavaScript-Rout рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдореЗрдВ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ;
  3. рдлрд┐рд▓ рд╣реИрдХ рдХрд╛ рдПрдХ рд▓реЗрдЦ рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддрд╛ рд╣реИред

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


All Articles