Den*_*nis 3 c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-4
我有mvc应用程序与额外的区域命名 account
我正在使用MvcSiteMapProvider制作面包屑
我有一个返回特定发票详细信息的操作.此操作的URL类似于localhost/account/profile/invs-histr/details/ID,其中ID是要显示的发票的ID.
我有accountAreaRegistration.cs注册区域路线,我有RouteConfig.cs注册全球路线.
目前,我必须localhost/account/profile/invs-histr/details/ID在两个文件中注册路由.如果我没有注册这条路线accountAreaRegistration.cs,我有404 exception.如果我没有注册此路线RouteConfig.cs,则不会渲染面包屑.
的开头RouteConfig.cs文件:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes();
}
Run Code Online (Sandbox Code Playgroud)
而且accountAreaRegistration.cs:
public override void RegisterArea(AreaRegistrationContext context)
{
context.Routes.MapMvcAttributeRoutes();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释一下,routes.MapMvcAttributeRoutes()和之间的区别是context.Routes.MapMvcAttributeRoutes()什么?
为什么我应该在两个文件中注册路由?
先感谢您
这是一个扩展方法,因此您调用它的对象是第一个参数.此参数是a RouteCollection,此集合在以下两种情况下都不同:
如果要避免对每个区域进行第二次调用,可以使用该[RouteArea("AreaName")]属性修饰控制器.
如果您想更好地理解属性路由,请参阅此文档:ASP.NET MVC中的属性路由5请特别注意"区域"部分.
| 归档时间: |
|
| 查看次数: |
10245 次 |
| 最近记录: |