自定义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目录下去组织我们的视图文件了。

Tags: MVC  视图 

已有 0 条评论,点击查看

评论:

姓名 *
Email
内容 *