自定义MVC项目的视图文件路径
日期:2010-5-13 9:47:26作者:QiuLiang |
当我们使用ASP.NET MVC 2框架来开发时,发现IDE已经默认帮我们建立好了几个文件夹用于组织Controller、Views等代码文件,但多数情况下,我们并不希望将所有的View放在一个目录,通过研究发现,我们完全可以自定义Master、View、ascx等文件的路径,按照项目的需要以及个人的习惯来组织。
具体步骤如下:
1,新建一个类库,继承自WebFormViewEngine
public class CTSViewEngine : WebFormViewEngine
{
public CTSViewEngine() {
MasterLocationFormats = new string[] {
"~/Views/Shared/Admin.Master"
};
ViewLocationFormats = new string[] {
"~/MtViews/{0}.aspx",
"~/MtViews/{0}.ascx"
};
PartialViewLocationFormats = ViewLocationFormats;
}
}
从代码我们可以看出,通过设置不同的LocationFormats来让MVC引擎在执行的时候自动去定义好的路径下寻找合适的View
2,新建一个类库,继承于Controller
public class MtBaseController : Controller
{
private static CTSViewEngine ctsViewEngine;
public MtBaseController() {
ctsViewEngine = new CTSViewEngine();
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new WebFormViewEngine());
ViewEngines.Engines.Add(ctsViewEngine);
}
} 我们将自定义的ViewEngine加入到Controller的ViewEngine
3,我们在新建Controller的时候只要继承自MtBaseController 这个类,然后我们就可以到MtViews路径,而不是系统默认的View目录下去组织我们的视图文件了。
评论: