asp.net mvc - 子文件夹
-
09-06-2019 - |
题
新的 Microsoft asp.net mvc 实现如何处理应用程序分区 - 例如:
--index.aspx
--about.aspx
--contact.aspx
--/feature1
--/feature1/subfeature/action
--/feature2/subfeature/action
我想我想说的是,似乎所有内容都必须进入视图/控制器文件夹的根目录,这在处理一个项目时可能会变得笨拙,如果使用 Web 表单构建,可能会有很多很多文件夹和子文件夹用于对应用程序进行分区的文件夹。
我想我已经了解了 MVC 模型,并且与 Web 表单相比,我喜欢它的外观,但我仍然在思考如何在实践中构建大型项目。
解决方案
组织控制器没有任何问题。您只需设置考虑组织的路线即可。您将遇到的问题是查找控制器的视图,因为您更改了约定。目前还没有任何内置功能,但您可以使用 ActionFilterAttribute 和继承 ViewLocator 的自定义视图定位器轻松创建一个解决方案。然后,在创建控制器时,您只需指定要使用的 ViewLocator,以便控制器知道如何查找视图。如果需要的话我可以发布一些代码。
这种方法有点符合我给另一个人的一些建议,即使用 ASP.NET MVC 将门户的视图分离出来。这里是 链接到问题 作为参考。
其他提示
至于如何排列视图,您可以根据需要将视图放入子文件夹中并创建自己的视图结构。所有视图始终可以使用 ~ 语法通过其完整路径进行引用。因此,如果将 Index.aspx 放在 \Views\Feature1\Home 中,则可以使用 ~/Views/Feature1/Home/Index.aspx 引用该视图。
我发现以下两篇不错的博客文章可能会对其他读者有所帮助:
本文对 Haacked 上面描述的内容进行了更深入的讨论。
http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx
这是将站点分组为“区域”的一个不错的选择。
感谢您提供额外的信息...这是比利·麦卡弗蒂关于这个主题的另一篇好文章......