名称' ViewBag'当前上下文中不存在mvc 5

时间:2015-05-14 06:19:14

标签: asp.net asp.net-mvc-5

我在Views文件夹中有web.config

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.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" />
        <add namespace="PartyInvites" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

我还确保解决方案Web.config已更新

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-5.2.2.0" newVersion="5.2.2.0"/>
  </dependentAssembly>

但是当我查看视图时,我仍然会收到错误

  

编译器错误消息:CS0103:名称&#39; Viewbag&#39;在...中不存在   当前的背景

3 个答案:

答案 0 :(得分:0)

看起来我的问题是一个孤立的案例,VS告诉我在更新了一些扩展后搞砸了,我不记得是什么扩展使它像这样我只是修复了VS的安装并且它起作用了。

答案 1 :(得分:0)

我在Visual Studio 2015上遇到了同样的问题。通过更新.Net Framework以使用4.5.2而不是4.0来解决此问题。这是在项目的 Properties 页面中完成的。

答案 2 :(得分:0)

无论是否在web.config文件中完成了所有正确的配置,我都遇到了这个问题。

发现组件缓存中有一些错误的文件,从而阻止Razor视图识别ViewBag,Model和HtmlHelpers。删除这些文件可以解决问题(这些文件的良好版本是在我下次打开Visual Studio时创建的。)

请按照以下路径查找文件:

C:\Users\your.name.here\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

删除所有四个文件:

  1. Microsoft.VisualStudio.Default.cache
  2. Microsoft.VisualStudio.Default.catalogs
  3. Microsoft.VisualStudio.Default.err
  4. Microsoft.VisualStudio.Default.external

我关闭了我的项目,删除了该路径上的文件,然后重新打开了我的项目,清理了解决方案,然后重新构建它,问题就解决了

删除临时ASP.NET文件也有帮助。 C:\ Users \您的名称。此处\ AppData \ Local \ Temp \临时ASP.NET文件。

谢谢!