我一直在努力学习ASP.NET MVC 3和事情会从路由方面分得很开,无论我尝试我似乎无法让他们完全正确。ASP.NET MVC基本的路由与参数
我的主网页上的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',o显然意味着它没有使用第一条路线。
一切工作之前,我试图参数添加到ActionLink的,所以基本上,我究竟做错了什么?
非常感谢。
FYI:你还有一个问题,因为你的第一个和第二路由不能对传入的请求进行区分。第二个应该处理的所有请求(以及输出链接)将由第一个完成。 – 2012-08-04 08:24:40
目前一切似乎都正常。对于其中一条路线是多余的,我并不感到惊讶,我仍然试图让我的头脑绕行!如果前两条路线换了一圈,它会有所作为吗? – XN16 2012-08-04 09:36:09