18 asp.net-mvc routing asp.net-mvc-routing
我创建了一个新的ASP.NET MVC项目并实现了站点授权过滤器.
当我将路由映射到该{controller}/{action}对时,我将一个role ="SomeRole"默认传递给该路由.
如果我通过完整的url(http://localhost/somecontroller/someaction)并指定了完整的路径,它的工作原理非常好
MapRoute("SomeAction", "somecontroller/someaction",
new { controller = "SomeController", action = "SomeAction", role = "SomeRole");
Run Code Online (Sandbox Code Playgroud)
问题是,当有人访问时http://thesiteaddress.com,必须有一个默认路由,/home/index而不是/和我指定
MapRoute("Default", new { controller="somecontroller",action="action" });
Run Code Online (Sandbox Code Playgroud)
然后我失去role="SomeRole"了以前的MapRoute.
我怎么解决这个问题?
Jir*_*ong 17
实际上,乔治是对的.MVC路由遵循订购路线.您的最后一条路线必须尽可能通用,并且您之前的路线必须尽可能具体.
在您的情况下,两者都是通用的.你应该
MapRoute("SomeAction", "Post/{action}", new {controller = "Post", role = "User");
Run Code Online (Sandbox Code Playgroud)
然后
MapRoute("Default", new {controller="Home", action="Index", role = "Anonymous"});
Run Code Online (Sandbox Code Playgroud)
所以,你给两条路线都特别.
| 归档时间: |
|
| 查看次数: |
57230 次 |
| 最近记录: |