Asp.net mvc 3 使用ajax调用主控制器操作
我的主控制器中有一个响应url“/”的“索引”操作。该操作还有一个可选的“id”参数Asp.net mvc 3 使用ajax调用主控制器操作,asp.net-mvc-3,Asp.net Mvc 3,我的主控制器中有一个响应url“/”的“索引”操作。该操作还有一个可选的“id”参数 [HttpGet] public ViewResultBase Index(int id = -1) { .... } 这个的路由是 routes.MapRoute("Home", "", new { controller = "Home", action = "Index", id = -1 } ); 如果我尝试使用ajax调用此
[HttpGet]
public ViewResultBase Index(int id = -1)
{
....
}
这个的路由是
routes.MapRoute("Home",
"",
new { controller = "Home", action = "Index", id = -1 } );
如果我尝试使用ajax调用此操作
$.get(
'@Url.Action("Index", "Home")',
{ id: 20 },
function (response) {
});
调用失败,因为url为/?id=20
是否可以强制Url.Action包含控制器和操作名称,就像我这样做
“@Url.Action(“索引”、“主页”)”+“主页/索引”
一切正常,还是我需要纠正我的路线?你不需要像这样为你的行动方法制定特殊路线。默认路线:
{controller}/{action}/{id},
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
已经处理了那个案子;当您在服务器上请求“/”时,您应该被发送到Home/Index
操作方法。您应该删除指定的自定义路由,并让默认路由将您发送到正确的目的地