更改ASP.NET MVC默认文件夹结构

时间:2010-01-04 21:04:16

标签: asp.net-mvc

是否可以将文件夹组织更改为以下内容,并且仍然可以使用MVC。

P1

  • 控制器
  • 模特
  • 浏览

P2

  • 控制器
  • 模特
  • 浏览

等。

4 个答案:

答案 0 :(得分:4)

这看起来很像MVC 2中提供的新功能区域,尽管它目前处于预览状态,将在VS 2010上发布。

如果您想在不使用区域的情况下自行完成,请查看this article on view engines

答案 1 :(得分:1)

如前所述,区域功能正是您所需要的。 如果你使用的是vs2010,那么虽然你有MVC2,但你没有创建区域的工具 - 这些只在vs 2008上安装MVC2 rc时可用

按照以下链接中的说明进行操作:http://msdn.microsoft.com/en-us/library/ee671793%28VS.100%29.aspx 如你所见,缺少菜单选项:

  1. 从那里下载示例项目。
  2. 根据示例
  3. 在您的解决方案中构建目录结构
  4. 更改AreaRegistration.cs以匹配您的区域名称
  5. 添加AreaRegistration.RegisterAllAreas();在IgnoreRoute
  6. 之后的global.asax的RegisterRoutes函数中

    注意:命名空间shuold包含.Areas。 更多解释搜索stackoverflow for asp-net-mvc-2-beta-single-project-area-registration-getting-http-404(因为这是我第一次发布答案 - 所以不要让我追加更多然后1个链接,去看看..)

    希望这有帮助

答案 2 :(得分:0)

应该可行,我认为默认的文件夹结构只是一个建议。我之前在一些文档中看到,较大的项目可能会以不同的方式分割,甚至可能在多个程序集中。

我认为唯一会引起一些麻烦的是观点。由于控制器操作仅通过文件名映射到它们。我知道有一些方法可以改变它们,但我还没有这么做。

答案 3 :(得分:0)

您可以创建自己的视图引擎来解决路径。这听起来像是一个非常奇怪的想法,但ViewEngine类实际上负责两件事:定位视图并将视图呈现给httpresponse。您需要更改的是定位部分,您可以继承默认的aspxviewengine并更改视图定位部分。