我创建了一个新的 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/