Asp.net MVC 3中修改views 目录
2011-09-09 15:36 chris-shao 阅读(1816) 评论(2) 编辑 收藏 举报Asp.net MVc中所有视图是放在views目录下,为了使页面可配置,并且多views并存,可切换,经研究,代码如下:
第一步:继承RazorViewEngine修改类定义
public class WebFormViewEngine : RazorViewEngine
{
public WebFormViewEngine()
{
MasterLocationFormats = new[] {
"~/TestViews/{1}/{0}.master",
"~/TestViews/Shared/{0}.master"
};
ViewLocationFormats = new[] {
"~/TestViews/{1}/{0}.cshtml",
"~/TestViews/{1}/{0}.cshtml",
"~/TestViews/Shared/{0}.cshtml",
"~/TestViews/Shared/{0}.cshtml"
};
PartialViewLocationFormats = ViewLocationFormats;
}
}
{
public WebFormViewEngine()
{
MasterLocationFormats = new[] {
"~/TestViews/{1}/{0}.master",
"~/TestViews/Shared/{0}.master"
};
ViewLocationFormats = new[] {
"~/TestViews/{1}/{0}.cshtml",
"~/TestViews/{1}/{0}.cshtml",
"~/TestViews/Shared/{0}.cshtml",
"~/TestViews/Shared/{0}.cshtml"
};
PartialViewLocationFormats = ViewLocationFormats;
}
}
第二步:在需要修改View路径的方法内调用如下代码:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new WebFormViewEngine());
ViewEngines.Engines.Add(new WebFormViewEngine());
如果没有调用ViewEngines.Engines.Clear();将会多个路径共存。
如果需要自定义配置路径,只需要将自定义的类中的路径从配置文件或者数据库中读取即可。