代码改变世界

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;
        }
    }

 第二步:在需要修改View路径的方法内调用如下代码:

 

 ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(
new WebFormViewEngine());

 如果没有调用ViewEngines.Engines.Clear();将会多个路径共存。

 

 

如果需要自定义配置路径,只需要将自定义的类中的路径从配置文件或者数据库中读取即可。