You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中ViewBag不存在于当前上下文问题求助

解决CS0103: "ViewBag"不存在于当前上下文的问题

1. 检查根目录web.config的程序集与版本配置

确保根web.config中正确引用匹配版本的MVC、Razor相关程序集,且绑定重定向无冲突:

<compilation debug="true" targetFramework="4.7.2"> <!-- 需与项目目标框架一致 -->
  <assemblies>
    <add assembly="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Razor" publicKeyToken="31BF3856AD364E35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31BF3856AD364E35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

2. 检查Views文件夹下的web.config配置

视图编译依赖此文件的正确配置,重点确认以下节点:

  • 确保<pages>节点包含MVC核心命名空间:
<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>的宿主工厂与版本匹配:
<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.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>
  • 保证<compilation>节点的targetFramework与根web.config一致。

3. 修正视图文件的页面指令

在出错的视图顶部显式声明继承基类,强制绑定MVC的WebViewPage:

@inherits System.Web.Mvc.WebViewPage
<!-- 带模型的视图需改为:@inherits System.Web.Mvc.WebViewPage<YourModelType> -->

4. 其他排查操作

  • 手动删除项目下的bin和obj文件夹,重新生成项目,清除残留旧程序集。
  • 检查NuGet包管理器,确保System.Web.Mvc、System.Web.Razor、System.Web.WebPages版本统一(Razor 3.0对应MVC 5.x、WebPages 3.0),无跨版本混合引用。
  • 确认项目属性的目标.NET Framework版本,与两个web.config中的targetFramework完全一致。

内容的提问来源于stack exchange,提问作者Yohanes AI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:11:12