asp.net-mvc - ASP.NET MVC 默认路由?

标签 asp.net-mvc routes asp.net-mvc-routing

我创建了一个新的 ASP.NET MVC 项目并实现了站点授权过滤器。

当我将路由映射到 {controller}/{action} 对时,我将 role = "SomeRole"默认值传递给路由。

如果我通过完整的网址(http://localhost/somecontroller/someaction)并且指定了完整的路线,它会完美地工作

MapRoute("SomeAction", "somecontroller/someaction",
 new { controller = "SomeController", action = "SomeAction", role = "SomeRole");

问题是,当有人访问 http://thesiteaddress.com 时,必须有一个默认路由调用 /home/index 而不是 / 如果我指定

MapRoute("Default", new { controller="somecontroller",action="action" });

然后我就失去了之前 MapRoute 中的 role="SomeRole"

我该如何解决这个问题?

最佳答案

确保默认路由位于列出的路由表的底部。当涉及 ASP.NET MVC 路由表时,顺序很重要。

正确的顺序是从“最具体”的路线到最不具体的路线。

关于asp.net-mvc - ASP.NET MVC 默认路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973205/

相关文章:

C# MVC 4 ControllerName 属性

asp.net-mvc - 登录页面上的 Asp.Net MVC bundle

asp.net-mvc - List<string> 的编辑器模板

c# - JSON 字符串被转义

ruby-on-rails - 为什么 Rails 没有为我的 'match' 路线生成路线助手?

asp.net - MVC3 - 所有路由都在本地工作,但不能远程工作

html - 将 HTML table 元素放置在 img 元素之上

asp.net - 使用页面路由时,子目录中的 Web.config 不起作用

android - 如何获取从位置A(起点)到位置B(目的地)的路线的所有经纬度

asp.net-mvc - 带有特殊字符的 MVC 路由