【问题标题】:How to locate MVC3 Razor (.VBHTML) View?如何定位 MVC3 Razor (.VBHTML) 视图?
【发布时间】:2011-02-19 01:42:39
【问题描述】:

看起来我在这里遗漏了一些东西,我无法弄清楚它是什么。我正在使用 VS2010 VB Web 项目模板创建一个 MVC3 VB.NET 应用程序。我删除了所有 (.aspx) 视图并创建了 .VBHTML Razor 视图 - 在 Home 文件夹下命名为 Index.vbhtml。 HomeContoller 具有操作索引。当我运行应用程序时,出现以下错误。

未找到视图“索引”或其主视图。搜索了以下位置: ~/Views/Home/Index.aspx

~/Views/Home/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx ~/Views/Home/Index.cshtml ~/Views/Shared/Index.cshtml

显然视图引擎无法定位 .vbhtml 视图。谁能告诉我如何启用它?相同的设置适用于 .cshtml 文件。

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    您是否将 Razor 注册为 ViewEngine?

    protected void Application_Start()
    {
        // ...
        ViewEngines.Engines.Add(new RazorViewEngine(("vb")));
    }
    

    【讨论】:

    • 我在智能感知中看不到 RezorViewEngine()。 MSDN 说有一个 RazorViewEngine 类。 msdn.microsoft.com/en-us/library/gg453829(v=vs.98).aspx。但我在 System.Web.Mvc.dll 中看不到它(使用反射器)。你能告诉我我在这里缺少什么吗?我正在使用 MVC3
    【解决方案2】:

    由于您删除了所有 .aspx,我猜这个应用程序最初不是 Razor 应用程序?您是否在 Web 配置中添加了对 Razor 的引用?

    <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    

    【讨论】:

    • 是的,它最初不是 Razor 应用程序。它是一个 Visual Basic ASP.NET MVC 3 Web 应用程序 (ASPX)。我在 Visual Basic 下看不到 ASP.NET MVC 3 Web 应用程序 (RAZOR) 的模板。我还添加了您建议的配置条目,但我仍然遇到同样的问题。
    【解决方案3】:

    对不起,这是我的错误。我还没有安装最新的 MVC3 并且搞砸了一切。非常感谢。 ViewEngines.Engines.Add(new RazorViewEngine(("vb")));为我指明了正确的方向。我引用的版本没有 RazorViewEngine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多