【发布时间】:2015-10-16 14:17:55
【问题描述】:
我有以下_ViewStart.cshtml:
@{
ViewBag.Version = 1;
ViewBag.Debug = false;
}
但是,我收到以下错误:
[错误] 当前上下文中不存在名称“ViewBag”(@ 第 2 行)
[错误] 当前上下文中不存在名称“ViewBag”(@ 第 3 行)
[警告] ASP.NET 运行时错误:无法加载文件或程序集“System.Web.Helpers”或其依赖项之一。
我已经通过 NuGet 安装了最新版本的 ASP.NET MVC (5.2.3)。
如您所见,System.Web.Helpers 被引用。
另外,我的Views/Web.config 中有以下页面命名空间:
<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.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
为什么我找不到 ViewBag 属性,为什么会出现该警告?
更新
使用ViewContext.ViewBag 而不仅仅是ViewBag 似乎可以编译和工作。但是为什么会这样呢?
【问题讨论】:
-
这可能是一个愚蠢的评论,但是您尝试过清理/重建吗?您的 bin 文件夹中的 DLL 是否用于依赖项?
-
@Coulton 是的,已经六次了。根本不是一个愚蠢的评论,我检查了其他问题,重建似乎解决了这个问题。不幸的是,它对我不起作用
-
当我遇到这样的问题时,我确信对管理 Nuget 依赖项进行更新会为我解决这个问题。我不知道您是否可以选择进行测试。
-
@Duston 是的,我的 Web.config 似乎包含了它需要的所有内容,但问题仍然存在
标签: c# asp.net asp.net-mvc