我再次开始在ASP.NET中进行开发,但在Visual Studio中遇到了一个小错误。我的.cshtml文件在使用一些razor函数时显示错误。例如“名称'viewbag'在当前上下文中不存在”。这里有一张图片:
我正在使用一个演示项目。您可以在这里找到这个项目:https://github.com/wintellight/angula-mvc-cookbook/tree/master/basicproject
我查看了其他几个线程,大多数都建议更新web.config文件。这两个配置文件已经存在了,由于它是一个相当流行的演示,我假设它包含了所有所需的配置。当然,我已经查看了这些配置文件,它们确实包含了建议的解决方案。
其他详细信息:
提前道谢。
我有这个问题,尽管有所有正确的配置。
结果是组件缓存中的一些坏文件,阻止了Razor视图识别ViewBag、Model和HTMLHelpers。删除这些文件解决了问题(下次打开Visual Studio时会创建这些文件的好版本)。
文件位于以下位置:
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
删除所有四个文件:
我随后在其他几台开发人员机器上看到了相同的问题,这个修复程序很快就解决了这个问题。
更新Views文件夹中web.config
文件设置中的版本号。
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
如果您已经通过nuget更新了MVC版本,那么应该是:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
其他依赖项版本可能也需要更新。MVC帮助程序和对象视图中的编译和命名空间问题通常与视图文件夹中乱七八糟的web.config
文件有关。