标签:
我们平时在做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"
}
});
标签:
原文地址:http://www.cnblogs.com/jx270/p/4212161.html