【问题标题】:ASP.NET MVC View is failing to compileASP.NET MVC 视图无法编译
【发布时间】: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


【解决方案1】:

您目前有哪些版本的程序集?

根据https://www.nuget.org/packages/Microsoft.AspNet.Mvc/5.2.3 Microsoft ASP.NET MVC 5.2.3 具有以下依赖项:

    Microsoft.AspNet.WebPages (≥ 3.2.3 && < 3.3.0)
    Microsoft.AspNet.Razor (≥ 3.2.3 && < 3.3.0)

根据https://www.nuget.org/packages/Microsoft.AspNet.WebHelpers/ ASP.NET Web Helpers Library 3.2.3 具有以下依赖项:

    Microsoft.AspNet.WebPages (≥ 3.2.3 && < 3.3.0)
    Microsoft.AspNet.WebPages.WebData (≥ 3.2.3 && < 3.3.0)

也许 nuget 没有提取所有必需的版本。

【讨论】:

【解决方案2】:
  1. 删除 MVC 程序集
  2. 获取正确版本的 MVC 程序集,例如 C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 1.0\Assemblies\System.Web.Mvc.dll。

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 2010-09-27
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多