【发布时间】:2020-09-01 02:41:50
【问题描述】:
我知道网上已经有一些解决方案,但是在尝试了所有解决方案后我自己都感到困惑。
我只是想澄清一下我尝试过的解决方案:
- 确保
Microsoft.AspNet.Web.Optimization或System.Web.Optimization存在。我在 References 文件夹中有System.Web.Optimization。我尝试在 Nuget 中安装Microsoft.AspNet.Web.Optimization,控制台告诉我它已经存在。我认为这意味着我已经在参考文献中拥有它。 -
将命名空间添加到
~/Views/Web.config(不是根Web.config)。在我的~/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.Helpers"/> <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"/> <add namespace="System.Web.WebPages"/> </namespaces> </pages> </system.web.webPages.razor>在我的根目录
Web.config:<system.web> <machineKey configSource="Config\MachineKey.config"/> <httpRuntime targetFramework="4.5" maxRequestLength="20480"/> <globalization culture="en-CA" uiCulture="en-CA"/> <customErrors mode="Off"/> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies> </compilation> <pages buffer="true" enableViewState="false"> <namespaces> <add namespace="System.Web.Helpers"/> <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"/> <add namespace="System.Web.WebPages"/> </namespaces> </pages> </system.web>我在网上搜索,其中一个答案告诉我命名空间应该是相同的。我做了,但我没有任何改变。
确保目标版本。我的目标框架是 4.5。我的 MVC 版本是 5.2.0.0。其实我不明白这个解决方案。我试图将框架版本更改为 4.5.1,Visual Studio 告诉我我的版本实际上是 4.5。我想我的目标版本是OK的......(其实我不明白这个解决方案)
将
@using System.Web.Optimization添加到~/Views/Shared/_Layout.cshtml。这让事情发生了。我的@Scripts.Render现在可以了,但@ViewBag下面还有一条红线。删除
ComponentModelCache并重新启动 Visual Studio。我正在使用 VS 2015。我试过了,没有任何反应。
我稍后会更准确地执行这些解决方案,但我只想知道是否还有其他我错过的解决方案值得尝试。非常感谢您的帮助!!
【问题讨论】:
-
是部署你的网站后出现还是只是编译器说viewbag不存在?
-
@JohnEphraimTugado 感谢您的回复。我刚刚从我们的 TFS 源服务器下载,还没有部署。构建后,在错误列表面板上,它显示了这些错误。但是,构建会成功。
标签: c# asp.net-mvc razor