asp.net mvc - 子文件夹

时间:2008-08-25 19:50:22

标签: asp.net-mvc directory-structure

新的Microsoft asp.net mvc实现如何处理应用程序的分区 - 例如:

--index.aspx
--about.aspx
--contact.aspx
--/feature1
--/feature1/subfeature/action
--/feature2/subfeature/action

我想我想说的是,似乎所有内容都必须进入视图/控制器文件夹的根目录,在处理项目时可能会变得笨拙,如果使用Web表单构建可能有很多很多文件夹和子文件夹来分区应用程序。

我认为我得到了MVC模型,我喜欢它与Web表单相比的外观,但仍然让我了解如何在实践中构建一个大型项目。

4 个答案:

答案 0 :(得分:11)

组织控制器没有任何问题。您只需设置路线即可考虑组织。您将遇到的问题是找到控制器的视图,因为您更改了约定。它还没有任何内置功能,但使用ActionFilterAttribute和继承ViewLocator的自定义视图定位器很容易创建自己的工作。然后在创建控制器时,您只需指定要使用的ViewLocator,以便控制器知道如何查找视图。如果需要,我可以发布一些代码。

这种方法伴随着一些建议,我让另一个人使用ASP.NET MVC将他们的观点分离出来。以下是link to the question作为参考。

答案 1 :(得分:7)

就您如何安排视图而言,如果您愿意并创建自己的视图结构,可以将视图放在子文件夹中。所有视图始终可以使用〜语法通过其完整路径引用。因此,如果您将Index.aspx放在\ Views \ Feature1 \ Home中,那么您可以使用〜/ Views / Feature1 / Home / Index.aspx引用该视图。

答案 2 :(得分:6)

以下是我发现的两篇好文章,可能会对其他读者有所帮助:

http://stephenwalther.com/blog/archive/2008/07/23/asp-net-mvc-tip-24-retrieve-views-from-different-folders.aspx

这篇文章更深入地讨论了Haacked所描述的内容。

http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx

这是将您的网站分组为“区域”的不错选择。

答案 3 :(得分:2)

感谢额外的信息scurial ......这是Billy McCafferty关于这个主题的另一篇好文章......

http://devlicio.us/blogs/billy_mccafferty/archive/2009/01/22/mvc-quot-areas-quot-as-hierarchical-subfolders-under-views.aspx