【发布时间】:2012-09-12 20:46:49
【问题描述】:
总结:
我正在审查我最近开始工作的网站的路线图。我遇到了一条我不熟悉的路线:
RouteTable.Routes.MapRoute(NamedRoutes.ROUTE_NAME, "urlSegment1/urlSegment2", new { });
请注意,MapRoute 的“默认”参数是一个空对象。这通常是我指定控制器、操作和任何参数的地方。我一直在谷歌搜索,发现我没有提出正确的问题来产生我正在寻找的答案。
问题:
当 MapRoute 的“defaults”参数为空对象时,MVC 路由的行为如何?一个答案会很棒。支持文档会更好。
编辑:
实际使用的路线是:
routes.MapRoute(NamedRoutes.BROWSE_MEN, "browse/Mens", new { } });
使用以下方法生成 URL 时出现问题:
Html.BeginForm("Add", "Signup", FormMethod.Post, new { id = "signup", enctype = "multipart/form-data" })
【问题讨论】:
-
该路线实际上有效吗?我几乎认为这是杀死以前使用的路线的一种方式。
-
它有效,是的。但是,我遇到的问题是,我期望一条路线被映射到该路线下方。我发现这条路线下方的任何东西都没有受到打击,并且所有东西都被这条路线抓住了。
-
也许你需要的是一个约束而不是默认
-
将此路线移至底部。看起来它可能打算成为一条包罗万象的路线
-
@Brian。我同意它是一个包罗万象的工作。我只是想了解它是如何工作的。更具体地说,为什么 ABC/DEF 的入站请求会命中 urlSegment1/urlSegment2 的路由模式?
标签: c# .net asp.net-mvc-3 asp.net-mvc-routing