asp.net mvc-子文件夹

时间:2020-03-05 18:42:58  来源:igfitidea点击:

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

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

我想我想说的是,似乎所有内容都必须放入Views / Controllers文件夹的根目录中,而如果使用Web窗体构建的项目可能会有很多文件夹和子目录,那么在执行项目时可能会变得笨拙文件夹以对应用程序进行分区。

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

解决方案

回答

组织控制器没有任何问题。我们只需要设置路由即可将组织考虑在内。由于更改了约定,我们将遇到的问题是查找控制器的视图。尚无内置功能,但是使用ActionFilterAttribute和继承自ViewLocator的自定义视图定位器可以轻松地在自己周围创建工作。然后,在创建控制器时,只需指定要使用的ViewLocator,以便控制器知道如何查找视图。如果需要,我可以发布一些代码。

这种方法还带有一些建议,我给了另一个人一些建议,以便他们使用ASP.NET MVC将他们的视图分离到门户中。这是该问题的链接,以作为参考。

回答

就如何排列视图而言,我们可以根据需要将视图放在子文件夹中,并创建自己的视图结构。始终可以使用〜syntax通过其完整路径引用所有视图。因此,如果将Index.aspx放在\ Views \ Feature1 \ Home中,则可以使用〜/ Views / Feature1 / Home / Index.aspx引用该视图。

回答

这是我发现的两篇不错的博客文章,可能会对其他读者有所帮助:

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

这是将网站分为"区域"的一种不错的选择。

回答

感谢我们提供额外的信息...这是Billy McCafferty关于该主题的另一篇好文章...

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