我创建了一个新的ASP.NET MVC项目并实现了一个站点授权过滤器。
当我将路由映射到{controller} / {action}对时,我将角色=“SomeRole”默认传递给路由。
如果我通过完整的URL(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中输掉角色=“SomeRole”。
我该如何解决?
解决方法
确保默认路由位于列出的路由表的BOTTOM。 ASP.NET MVC路由表中的顺序很重要。
正确的排序是您的最特定路线的“最具体”路线。