Asp.net mvc asp.net mvc 3中的嵌套区域
我很难让嵌套区域正常工作 我想使用Areas文件夹中的结构来组织我的区域。即:Asp.net mvc asp.net mvc 3中的嵌套区域,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我很难让嵌套区域正常工作 我想使用Areas文件夹中的结构来组织我的区域。即: 区域 管理员 索引(默认) 地点 控制器 模型 观点 应用程序 索引(默认) 历法 控制器 模型 观点 我该如何用路线来构建它,以及如何注册每个区域。“Admin”和“Applications”是我所说的部分,然后实际区域位于一个部分中 我更喜欢使用带有额外元素的路线,例如: routes.MapRoute( "Applications_default", "{secti
- 区域
- 管理员
- 索引(默认)
- 地点
- 控制器
- 模型
- 观点
- 应用程序
- 索引(默认)
- 历法
- 控制器
- 模型
- 观点
- 管理员
routes.MapRoute(
"Applications_default",
"{section}/{area}/{controller}/{action}/{id}",
new { section = "Applications", area = "Index", action = "Index", controller = "Home", id = UrlParameter.Optional }
);
那可能吗
我想我在路由方面遗漏了一些东西,因为添加路由是一回事,但是我该如何命名该区域(AreaName属性)?“管理员/索引”?“管理索引”?“索引”可用于其他地方
目前,我正在尝试使用以下方法进行“正常”区域注册:
public override void RegisterArea(AreaRegistrationContext context) {
context.MapRoute(
"Admin_Index_default",
"Admin/Index/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
但是,当我转到时,我得到一个错误:“资源找不到。”:(
我如何构造路线以符合我所需的树结构?
我看了另一个问题:,但它并没有解决我的问题:(
任何帮助和指导都将不胜感激
提前感谢您不应该重新构造或重新组织您的区域文件夹。保留默认设置,每个区域都有一个控制器、模型和视图文件夹(以及AreaRegistration.cs等)。否则,您可能正在处理一个由命名空间问题组成的蜘蛛网。此外,您还必须告诉razor引擎要检查哪些文件夹才能找到您的视图。相信我,如果您在涉及区域时只遵循约定,您的生活会更愉快 如果你想创建一个深度URL结构,可以使用routes。你的routes可以完全独立于MVC中的文件夹结构(与webforms不同) 您是否尝试在新的MVC项目中使用此方法?也就是说,不要重新排列区域文件夹?只要您的管理区域有一个带有索引操作的HomeController,它就应该可以工作:
public override void RegisterArea(AreaRegistrationContext context) {
context.MapRoute(
"Admin_Index_default",
"Admin/Index/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我认为这是不受支持的。对于深度URL,我建议使用,而您可以忘记路由问题。谢谢您的回答,我遵循了您的建议。我在区域名称中使用名称前缀,而不是嵌套区域。这也为我提供了VS中的功能:)