代码之家  ›  专栏  ›  技术社区  ›  GvS

我可以更改ASP.NET MVC 3应用程序物理视图的搜索顺序吗?

  •  5
  • GvS  · 技术社区  · 14 年前

    我注意到ASP.NET MVC 3在.cshtml文件之前搜索.aspx文件。我可以更改这个搜索顺序吗?怎么做呢?

    背景信息

    调试时,我遇到以下异常:

    The view 'Reset' or its master was not found. The following locations were searched:
    ~/Views/Demo/Reset.aspx
    ~/Views/Demo/Reset.ascx
    ~/Views/Shared/Reset.aspx
    ~/Views/Shared/Reset.ascx
    ~/Views/Demo/Reset.cshtml
    ~/Views/Demo/Reset.vbhtml
    ~/Views/Shared/Reset.cshtml
    ~/Views/Shared/Reset.vbhtml
    

    我由此得出结论,首先搜索旧的.aspx视图。

    由于我将我的站点转换为MVC3,所有视图都转换为Razor,所以我希望首先搜索.cshtml文件。我认为这对表演会更好。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Craig Stuntz    14 年前

    对。 Change the order of the existing view engines. .

    但在非调试配置中,文件位置被缓存,因此它只对第一次查找有帮助。我不会出汗的。

        2
  •  4
  •   Community CDub    7 年前

    多亏了 the answer of Craig Stuntz 我找到了我要找的语法:

    我把这个加到我的 Application_Start 在里面 Global.asax.cs :

        ViewEngines.Engines.Clear();
        ViewEngines.Engines.Add(new RazorViewEngine()); 
        // ViewEngines.Engines.Add(new WebFormViewEngine()); <-- uncomment if needed
    

    这将清除已注册的视图引擎,并按我想要的顺序添加它们。