【问题标题】:Suddenly getting Razor problems突然遇到剃刀问题
【发布时间】:2015-10-29 11:28:04
【问题描述】:

在一个 ASP.NET MVC 5 项目(使用 Visual Studio 2013)中,我突然在使用 Razor 的视图中遇到很多错误。错误通常会在我构建时消失,但在我开始编辑这些文件 (.cshtml) 时会返回。

这是错误的屏幕截图:

有谁知道如何解决这个错误?

编辑 - Web.config(查看文件夹)

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>

    <!--
        Enabling request validation in view pages would cause validation to occur
        after the input has already been processed by the controller. By default
        MVC performs request validation before a controller processes the input.
        To change this behavior apply the ValidateInputAttribute to a
        controller or action.
    -->
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

【问题讨论】:

  • Views 文件夹中的 web.config 是什么样的?
  • @timothyclifford,我在最新的编辑中添加了 web.config 文件。
  • 您说您使用的是 MVC5,但您的 web.config 看起来像 MVC4,请在此处阅读有关升级 asp.net/mvc/overview/releases/…
  • @timothyclifford,谢谢,我去看看!
  • 有时发生在我身上的另一件事是 VS 感到困惑,我看到像你这样的随机错误。旧的关闭再打开技巧通常可以解决问题......

标签: asp.net-mvc visual-studio razor visual-studio-2013 asp.net-mvc-5


【解决方案1】:

您是将@ 放在变量前面还是剃刀代码的开头? 类似的东西:

@ViewBag.myVariable

@{
if(ViewBag.myBoolVariable)
{
   //your code here
}
}

【讨论】:

  • 是的,我愿意。问题是,在我开始使用两个不同的分支之前,我从来没有遇到过这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-19
  • 2014-01-19
  • 1970-01-01
相关资源
最近更新 更多