我一直在尝试学习 ASP.NET MVC 3,除了路由方面,一切都进展顺利,无论我尝试什么,我似乎都无法完全正确。
我在主页上有一个 ActionLink:
@Html.ActionLink("Contracts", "List", "Contract",
new { User.Identity.Name, page=1 })
这意味着在 ContractController 中访问此方法:
public ViewResult List(string user, int page = 1)
{
//snip
}
我的路线是:
routes.MapRoute(
null,
"Page{page}",
new { Controller = "Contract", action = "List" }
);
routes.MapRoute(
null,
"Page{page}",
new { Controller = "Contract", action = "List", user = "", page = 1 }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
该链接现在将返回一个 404 错误,因为它在控制器“Home”中找不到操作“List”,这显然意味着它没有使用第一条路由中的任何一条。
在我尝试向 ActionLink 添加参数之前,一切正常,所以基本上,我做错了什么?
非常感谢。