【问题标题】:Turning off the WebFormViewEngine when using razor?使用剃须刀时关闭 WebFormViewEngine?
【发布时间】:2011-08-20 06:10:06
【问题描述】:

我今天早上下载了Glimpse 尝试一下,当我点击视图标签时注意到了这一点:

它检查所有加载的视图引擎。我找到了在 web.config 中指定 RazorViewEngine 的位置,但我找不到 WebFormViewEngine 的位置。因为我知道我的项目中永远不会有 Web 表单视图,

  1. 关闭WebFormViewEngine 是否可以/安全?
  2. 如何关闭WebFormViewEngine

【问题讨论】:

    标签: asp.net-mvc configuration webforms razor


    【解决方案1】:

    如果您不使用 Web 表单视图引擎,则完全可以删除它。你可以这样做:

    public class Global : HttpApplication
    {
        public void Application_Start()
        {
            // Clears all previously registered view engines.
            ViewEngines.Engines.Clear();
    
            // Registers our Razor C# specific view engine.
            // This can also be registered using dependency injection through the new IDependencyResolver interface.
            ViewEngines.Engines.Add(new RazorViewEngine());
        }
    }
    

    上述方法调用进入您的global.asax 文件。

    code的来源

    【讨论】:

    • 你的代码说视图引擎也可以使用依赖注入来定义。你有这方面的例子吗?
    • 这将搜索 .vbhtml 以删除它,使用 Custom Razor View Engine 检查 this
    • @stom:忽略.vbhtml文件的更简单方法是简单地限制RazorViewEngine的文件扩展名,例如:ViewEngines.Engines.Add(new RazorViewEngine { FileExtensions = new [] { "cshtml" } });
    【解决方案2】:

    另一种方法是仅删除要删除的视图引擎:

        var webformVE = ViewEngines.Engines.OfType<WebFormViewEngine>().FirstOrDefault();
        ViewEngines.Engines.Remove(webformVE);
    

    【讨论】:

    • 针对接受的答案运行此方法 3 轮。它们每次运行都花费约 4 毫秒(对于那些好奇的人)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多