Loading

Manage your ViewEngine(Wirte by myself)

I think anybody would have the same problem as my that have a  little big mvc project  and of couse we have alot views to share ,its necessary for reuse, but sadlly our MVC3 razor view only provide one share dir of “Share”.

If you type viewengin in ZZK , you will c most results are tell you to create a new view engine, its too complex to only add a share directory .

So my solution is to modify the VE, firstly you should know ,its init two default viewengine :

    static ViewEngines()
    {
        ViewEngineCollection engines = new ViewEngineCollection();
        engines.Add(new WebFormViewEngine());
        engines.Add(new RazorViewEngine());
        _engines = engines;
    }

My code(because no aspx or other webforms need in my website so no webform VE needed!)

            ViewEngines.Engines.Clear();
            var rve = new RazorViewEngine();
            var newLoactions = rve.PartialViewLocationFormats.ToList();
                newLoactions.AddRange(new List<string>
                              {
                                  //"~/Views/{controller:1}/{0}.cshtml"
                                  "~/Views/XXX/{0}.cshtml"
                              });
            rve.PartialViewLocationFormats = newLoactions.ToArray();
            ViewEngines.Engines.Add(rve);

 

Hope can help you too!

posted @ 2011-06-28 12:58  today4king  阅读(301)  评论(0编辑  收藏  举报