The name 'ViewBag' does not exist in the current context

2019年12月24日 17:34 · 阅读(594) ·

参考

https://stackoverflow.com/questions/15550899/the-name-viewbag-does-not-exist-in-the-current-context/15553331

开发环境

名称 版本
操作系统 Windows 10 X64
VS Visual Studio 2010
MVC 3.0

问题描述

发布一个 Visual Studio 2010 MVC3 的项目到服务器,访问出现下面的错误,但是本机运行正常

问题解决

发现网站目录的 Views 文件夹少了对应的 web.config 文件

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <configSections>
  4. <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  5. <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  6. <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  7. </sectionGroup>
  8. </configSections>
  9. <system.web.webPages.razor>
  10. <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  11. <pages pageBaseType="System.Web.Mvc.WebViewPage">
  12. <namespaces>
  13. <add namespace="System.Web.Mvc" />
  14. <add namespace="System.Web.Mvc.Ajax" />
  15. <add namespace="System.Web.Mvc.Html" />
  16. <add namespace="System.Web.Routing" />
  17. </namespaces>
  18. </pages>
  19. </system.web.webPages.razor>
  20. <system.web>
  21. <httpHandlers>
  22. <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
  23. </httpHandlers>
  24. <!--
  25. Enabling request validation in view pages would cause validation to occur
  26. after the input has already been processed by the controller. By default
  27. MVC performs request validation before a controller processes the input.
  28. To change this behavior apply the ValidateInputAttribute to a
  29. controller or action.
  30. -->
  31. <pages
  32. validateRequest="false"
  33. pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
  34. pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
  35. userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  36. <controls>
  37. <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  38. </controls>
  39. </pages>
  40. </system.web>
  41. <system.webServer>
  42. <validation validateIntegratedModeConfiguration="false" />
  43. <handlers>
  44. <remove name="BlockViewHandler"/>
  45. <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  46. </handlers>
  47. </system.webServer>
  48. </configuration>

把本地的 Views/Web.config 拷贝到服务器对应目录后,问题解决