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

3

是否可以更改文件夹结构为以下内容,并且仍然使MVC工作。

P1

  • 控制器 (Controllers)
  • 模型 (Models)
  • 视图 (Views)

P2

  • 控制器 (Controllers)
  • 模型 (Models)
  • 视图 (Views)

等等...

4个回答

4
这看起来很像新功能区域,这在 MVC 2 中可用,尽管它目前处于预览状态,并将与 VS 2010 一起发布。
如果您想自己完成而不使用区域,则可以查看此文章中的视图引擎

1

如前所述,Areas 功能是您要查找的功能。如果您使用的是 vs2010,则尽管您拥有 MVC2,但您没有创建区域的工具 - 这些仅在安装 MVC2 rc 时才可用于 vs 2008。

要实现此操作,请按照以下链接中的说明进行操作:http://msdn.microsoft.com/en-us/library/ee671793%28VS.100%29.aspx。如您所见,菜单选项已经消失了,因此:

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

注意:命名空间应包含 .Areas。

要获取更多解释,请在 stackoverflow 上搜索 asp-net-mvc-2-beta-single-project-area-registration-getting-http-404(因为这是我第一次发布答案 - SO 不允许我附加超过 1 个链接,去理解吧..)

希望这可以帮助到您


0

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

唯一可能会引起麻烦的是视图。因为控制器操作仅通过文件名映射到它们。我知道有一些方法可以更改它们,但我还没有必要这样做。


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接