12

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

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

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

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

4

4 回答 4

11

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

这种方法与我给另一个人的一些建议相一致,用于使用 ASP.NET MVC 将他们的视图分离到一个门户中。这是问题的链接作为参考。

于 2008-08-25T20:02:29.113 回答
7

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

于 2008-08-27T04:41:48.920 回答
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

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

于 2009-02-24T00:03:11.637 回答
2

感谢您提供额外的信息 scurial... 这是比利·麦卡弗蒂(Billy McCafferty)关于该主题的另一篇好帖子...

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

于 2009-02-24T10:17:52.550 回答