经过几个小时的挖掘。我解决了我的问题。我的解决方案1只能删除红线,当我运行本地主机调试时,它给了我 500 错误。
解决方案一:我只是在下面的代码中将版本从 3.0.0.0 更改为 2.0.0.0~/Views/Web.config
:
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
</sectionGroup>
当我将所有版本更改为 2.0.0.0 时,红线消失了,但出现了 500 错误。意思是system.web.webPages.razor
加载到_Layout.cshtml
正确。
据我了解,我的以下设置~/Views/Web.config
如果没有加载system.web.webPages.razor
版本不正确:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.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" />
<add namespace="System.Web.Optimization" />
</namespaces>
</pages>
</system.web.webPages.razor>
解决方案2:然后,我检查了根目录中的以下部分代码Web.config
:
<connectionStrings configSource="Config\ConnectionStrings-dev.config" />
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
the webpages:version
是 2.0.0.0。我将其更改为 3.0.0.0 以匹配中的版本~/Views/Web.config
,重新启动Visual Studio,它工作没有任何问题。
This link https://stackoverflow.com/questions/6405341/what-does-the-webpagesversion-setting-do/27918972是那个帮助我的人。