【问题标题】:Visual studio showing syntax errors in razor statements but worksVisual Studio 在 razor 语句中显示语法错误但有效
【发布时间】:2017-03-31 21:05:57
【问题描述】:

我在 MVC 3 中有一个项目。它运行良好,每次构建它时,它都会成功。但是,Visual Studio 坚持在每个 razor 语法的视图中显示编译错误。例如:

当前上下文中不存在名称'model' D:\ ... Detail.cshtml

那行很简单:

@model Namespace.DetailViewModel

我已经试过了:

  • 清洗液
  • 清理解决方案并删除binobj 文件夹。
  • 关闭 VS 并重新打开它(即使在中间重新启动)。

注意:我使用的是 Visual Studio 2012。

【问题讨论】:

  • 您是否尝试过删除用户配置文件?
  • 不,我没想到,但我终于找到了。

标签: asp.net-mvc asp.net-mvc-3 razor visual-studio-2012 syntax-error


【解决方案1】:

我已经解决了!

该项目是在计算机尚未安装 MVC 4 时创建的。安装后,由于某种原因,它一直在工作(尽管this)。

所以我所做的就是在安装 MVC 4 后在 MVC 3 项目中进行更改:see here

之后,它编译并且错误消失了,但是某些库的版本(System.Web.WebPagesSystem.Web.WebPages.Razor 和其他一些)存在错误。原来是因为他们将Copy Local 设置为True。更改后,一切都开始运行良好。

【讨论】:

    【解决方案2】:

    打开位于 Views 文件夹内的 web.config 文件,如果缺少此部分,请添加:

    <system.web.webPages.razor>
      <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
          <add namespace="System.Web.Mvc" />
          <add namespace="System.Web.Mvc.Ajax" />
          <add namespace="System.Web.Mvc.Html" />
          <add namespace="System.Web.Routing" />
        </namespaces>
      </pages>
    </system.web.webPages.razor>
    

    【讨论】:

    • 如何解决问题?
    • 它包括@model 在视图中使用的引用。如果您从一个新的空 ASP.NET MVC 项目开始,Visual Studio 不会自动将 web.config 文件包含在 Views 文件夹中。我认为这可能是类似的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2014-06-08
    • 2013-02-18
    • 2019-12-19
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多