Asp.net mvc MVC 3路由-单操作路由
我有一个关于同一控制器中的路由/导航的问题 假设我有以下路线设置Asp.net mvc MVC 3路由-单操作路由,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我有一个关于同一控制器中的路由/导航的问题 假设我有以下路线设置 routes.MapLowercaseRoute("SomeAwesomeControllerLookup", "SomeAwesomeController/{genre}/{region}/{lookup}", new { controller = "SomeAwesomeController", action = "Index", genre = UrlP
routes.MapLowercaseRoute("SomeAwesomeControllerLookup",
"SomeAwesomeController/{genre}/{region}/{lookup}",
new
{
controller = "SomeAwesomeController",
action = "Index",
genre = UrlParameter.Optional,
region = UrlParameter.Optional,
lookup = UrlParameter.Optional,
});
和Url操作,如下所示
<a href="@Url.Action("Index", "SomeAwesomeController", new { genre = "Movies" })">Movies</a>
我希望我的URL每次看起来都像“/someawesomecontroller/movies”,但是当我导航到一个过滤过的URL,如“/someawesomecontroller/movies/boston/today”时,我的菜单URL仍然是“/someawesomecontroller/movies/boston/today”,而不管上面剪下的HTML中指定的参数如何
我可以确保呈现的URL始终是“/someawesomecontroller/movies”,而无需对其进行硬编码。正如我在其他时间了解到的,路由值将被过滤并由动作呈现器使用
<a href="@Url.Action("Index", "SomeAwesomeController", new { genre = "Movies", region="", lookup="" })">Movies</a>
应该能解决你的问题。(也可以尝试“null”,但我相信这不会覆盖现有的路由值。似乎并不是完全将参数转换为查询字符串值,例如:/someawesomecontroller/movies?region=blah&lookup=blah我也尝试了以下
,但这只是清空了查询字符串参数。例如:/someawesomecontroller/movies?region=&lookup=很遗憾,不能为匿名参数指定null。@请尝试此链接。我就是在这里记住的。