丢失MVC中名为action的路由值

时间:2013-02-19 15:51:08

标签: c# asp.net-mvc asp.net-mvc-routing

当我使用MVC创建链接时发生了一些奇怪的事情:aspx视图:

<%= Url.Action("ActionName", "Controller", new { action = "add" }) %>

虽然我期待:"/Controller/ActionName?action=add", 我得到了:"/Controller/ActionName"

我想这是因为'动作'路线图??

有什么方法可以强迫这个?任何文件?因为我想知道还有什么被剥夺了。

路线配置:

routes.MapRoute("Default", 
  "{controller}/{action}/{id}", 
  new { controller = "Home", action = "Index", id = "" }
);

1 个答案:

答案 0 :(得分:1)

action(或其任何一部分)是保留的路由数据,对ASP.NET MVC至关重要。我建议将其重命名为其他内容。

在幕后,Url.Action助手可能会使用actionName参数的值覆盖它。

其他保留路线数据名称包括controllerarea。这些也是不区分大小写的。