为我的另一个基本问题做好准备...我想我已经掌握了MVC网站中的区域概念,但我想进一步组织它们,我可以将它们移动到外部项目(使用控制器,视图,脚本,样式)或在Area文件夹中创建子文件夹?
我问的原因是我尝试在Regions下创建一个文件夹并将其命名为Common,然后在该文件夹中创建一个区域并将其命名为MyTest。当我尝试浏览mysite.com/mytest
时,它会失败。
答案 0 :(得分:1)
您应该尝试使用通常的方式并将区域用作Areas
ASP.NET根文件夹的子文件夹。您的网址失败的唯一原因是您的AreaRegistration
文件未正确注册您的路由。您可以查看Glimpse
作为调试路径的方法,或者只是查看文件并尝试将其弄清楚。请记住,ASP.NET会自动查找从AreaRegistration
继承的类,并使用它们来注册特定于您所在区域的路由。如果您的路由似乎配置正确,请确保您的控制器位于路由可见的命名空间中。
如果您想将区域(使用控制器模型和视图)隔离到单独的项目中,您应该考虑创建自己的VirtualPathProvider
,因为这是查看视图的唯一方法。但是,它们必须是Embedded Resource
并且不能被贬低。您的区域(如果位于单独的DLL中)将自动注册,只要DLL位于主应用程序Bin
文件夹中,您的控制器就会自动找到。