我们平时在做Asp.Net MVC(以下就简称mvc)项目的时候,页面文件结构都用了“/Views/Controllers/page.aspx”,而把一些PartialView呢放在/Views/Shared 目录下面,但如果PartialView越来越多了呢。。。。如果其中还混杂着几个MasterPage,几个Error.aspx。。。。这个目录看起来就。。。。。
O my lady gaga!忒难看了,如果多了以后那更难看了。。。。。
为了看起来好看点,我准备分目录存放,我的目标是:
打开Home\Index.asp文件,放一个Login的PartialView吧。先运行一下看看吧。。。一定肯定以及确定不能运行,因为我们的mvc根本没有找到所需的文件,错误信息“The partial view 'xxx' was not found”。
我们知道mvc在查找文件的时候,会到2个目录下查找,一个是Controller目录,一个就是Shared目录,寻找Action.aspx或者Action.ascx,我们看下源代码(我下载的是asp.net mvc rc2),通过查看源代码,得知查找View或者PartialView都是通过IViewEngine.FindView和IViewEngine.FindPartialView来查找的。通过静态类:ViewEngines中的Engines,递归寻找,如果找到就显示,如果没有找到就报异常了。
ViewEngines.Engines.Add(new WebFormViewEngine
{ViewLocationFormats = new string[]{"~/Views/Shared/Error/{0}.aspx"},PartialViewLocationFormats = new string[]{"~/Views/Shared/Partial/{0}.ascx"},MasterLocationFormats = new string[]{"~/Views/Shared/Master/{0}.Master"},
AreaMasterLocationFormats = new string[]{"~/Areas/{1}/Share/Master/{0}.Master"}});
本文探讨了ASP.NET MVC项目中视图文件结构的优化方案,特别是针对部分视图(PartialView)和主布局页(MasterPage)的组织方式。作者提出了一种改进的文件结构,以解决大量部分视图和错误页面导致的混乱,并介绍了如何通过修改视图引擎设置来实现这一目标。



被折叠的 条评论
为什么被折叠?



