我在使用嵌套区域时遇到了问题。
我想要在Areas文件夹中使用一个结构来组织我的区域,例如:
- Areas
- Admin
- Index (默认)
- Locations
- Controllers
- Models
- Views
- ...
- Applications
- Index (默认)
- Calendar
- Controllers
- Models
- Views
- ...
- ...
- Admin
我该如何使用路由来构建它,并且如何注册每个区域。"Admin"和"Applications"是我称之为部分的内容,实际区域位于部分内。
我更喜欢使用带有额外元素(例如"section")的路由:
routes.MapRoute(
"Applications_default",
"{section}/{area}/{controller}/{action}/{id}",
new { section = "Applications", area = "Index", action = "Index", controller = "Home", id = UrlParameter.Optional }
);
这可以实现吗?
我觉得我在路由方面有些不理解,因为添加路由只是一件事,但是我该如何命名区域(AreaName属性)呢?“Admin/Index”?“Admin.Index”?“Index”可能会在其他地方使用...
目前我正在尝试使用“正常”的区域注册:
public override void RegisterArea(AreaRegistrationContext context) {
context.MapRoute(
"Admin_Index_default",
"Admin/Index/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但是当我访问http://localhost:60864/Admin/Index/Home/Index时,出现了一个错误:"找不到资源。" :(
如何构建我的路由以符合所需的树形结构? 我看了另一个问题:ASP.NET MVC中可以嵌套区域吗?,但它没有解决我的问题 :(
任何帮助和指导都将不胜感激!
提前致谢