具有动态路由值的Html.BeginForm

时间:2013-03-22 14:32:44

标签: ajax asp.net-mvc asp.net-mvc-routing html.beginform routevalues

我需要在html.beginform中添加动态路由值,类似这样

Html.BeginForm("action", "controller", new { 

   somethingID = "some js function or jquery that get the value from a textbox" 

}))

我知道mvc已经在表单提交时将参数传递给我的方法,但是我需要url以mvc url格式包含参数,即mydomain.com/controller/action/somethingID。 Eveything现在正在运行,但是因为我在网址中传递了另一个$.ajax()来电,"../someMethod"之类的内容,$.ajax()无效,因为当前网址为(mydomain.com/controller/action) (mydomain.com/controller/action/somethingID)

1 个答案:

答案 0 :(得分:0)

确保在RouteConfig中将UrlParameter.Optional设置为id

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