ASP.Net MVC路由空默认参数

时间:2012-09-20 13:14:56

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

概要

我正在审查我最近开始研究的网站的路线映射。我遇到了一条我不熟悉的路线:

RouteTable.Routes.MapRoute(NamedRoutes.ROUTE_NAME, "urlSegment1/urlSegment2", new { });

请注意,MapRoute的“default”参数是一个空对象。这通常是指定我的控制器,操作和任何参数的地方。我一直在谷歌上搜索,我发现我没有问正确的问题来产生我正在寻找的答案。

问题:

当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" })

2 个答案:

答案 0 :(得分:0)

当您未指定控制器时,无论是作为URL参数(标记)还是默认值,您都应该获得InvalidOperationException:

  

匹配的路线不包含“控制器”路线值   是必需的。

同样的行动。这是传入请求。对于URL生成,不需要控制器或操作。

答案 1 :(得分:-1)

您不必指定默认值。

因此它的工作方式就好像没有指定默认对象