【问题标题】:Organizing Areas in ASP.Net MVC 5在 ASP.Net MVC 5 中组织区域
【发布时间】:2014-11-21 14:54:49
【问题描述】:
为我提出的另一个基本问题做好准备...我想我已经掌握了 MVC 站点中的区域概念,但我想进一步组织它们,我可以将它们移动到外部项目(与控制器、视图、脚本、样式)或在区域文件夹中创建子文件夹?
我问的原因是我试图在区域下创建一个文件夹并将其命名为 Common,然后在该文件夹中创建一个区域并将其命名为 MyTest。当我尝试浏览到mysite.com/mytest 时,它失败了。
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-areas
【解决方案1】:
您应该尝试通常的方式,将区域用作Areas ASP.NET 根文件夹的子文件夹。您的 URL 失败的唯一原因是您的 AreaRegistration 文件未正确注册您的路线。您可以查看Glimpse 作为调试路由的一种方式,或者只是查看文件并尝试自己弄清楚。请记住,ASP.NET 会自动查找从 AreaRegistration 继承的类,并使用它们来注册特定于您所在区域的路由。如果您的路由似乎配置正确,请确保您的控制器位于路由可见的命名空间中。
如果您想将这些区域(带有控制器模型和视图)隔离到单独的项目中,您应该考虑创建自己的VirtualPathProvider,因为这是定位您的视图的唯一方法。但是,它们必须是 Embedded Resource 并且无法调试。您的区域(如果位于单独的 DLL 中)将自动注册,并且只要 DLL 位于主应用程序 Bin 文件夹中,就会自动找到您的控制器。