ASP.NET MVC路由根级视图
-
20-08-2019 - |
题
我想这将是相当容易的,但我完全莫名其妙。
我想一个控制器的观点是在本申请的根级别,而不是在该控制器的子目录,但我不能弄清楚。
我想有这些两个网址:
/信息 - 这应该在控制器操作 “信息”, “家”
/管理/ - 这应该是对控制器 “系统管理员” 动作 “索引”(缺省)
到目前为止,不管是什么我已经试过,第一条路最终会赶上两个。我似乎无法将两者分离。
这是信息页面甚至不需要控制器,它是静态的,但我想用一个母版页。有可能是把这个功能更简单的方法,但我还没有想通了这一点无论是。
所有我能想到的,会工作,会创建一个信息控制器和移动浏览/首页/信息来查看/信息/索引,而是具有一定的气味了。
我能够使用执行此操作在轨道:
map.connect ':controller/:action/:id'
map.connect ':action', :controller => 'home'
其他提示
可以使用的路由属性。
在你的路线的配置文件,你应该有。
routes.MapMvcAttributeRoutes();
AreaRegistration.RegisterAllAreas();
//code below should already be in your route config by default
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然后每一个动作上面可以有一个路由属性。
[Route("info")]
您甚至可以得到具有这些属性通过添加参数更先进,和/或子文件夹
[Route("blog/posts/{postId}")]
您可以把任何上述行动属性,就好像它是从博客控制器源于它就会出现。但是,你甚至不需要一个博客控制器。另外,{}表示的参数,所以只要确保你的行动走的是相同的参数作为什么花括号中。在这种情况下,参数将是
string postId
不隶属于 StackOverflow