在远程部署MVC3时获取"CS0103:当前上下文中不存在名称'ViewBag'"

Jim*_*Jim 10 deployment razor asp.net-mvc-3

我知道这个错误已在其他地方发布,但提供的解决方案对我不起作用.

背景:

  • 我使用Visual Studio 2010 SP1使用带有Razor语法的MVC3创建了一个全新的项目.
  • 当我在本地运行项目时,一切正常.
  • 我在远程服务器上安装了MVC3并部署了该项目.

我收到以下错误:

Compiler Error Message: CS0103: The name 'ViewBag' does not exist in the current context
Source Error:
Line 1:  @model MyModels.AModel
Line 2:  @{
Line 3:      ViewBag.Title = "Home Page";
Line 4:  }
Line 5:  <script type="text/javascript">
Run Code Online (Sandbox Code Playgroud)
  • 我检查过,我的Views目录中有一个Web.Config文件似乎已完成.
  • 这不是升级的解决方案.我没有从之前的MVC测试版转到最终版本.
  • 我现在发疯了.如果需要,我很乐意提供更多信息.

Jim*_*Jim 7

哎呀.我部署了我的应用程序的服务器有一个旧版本的MVC3.我已经跑了之前部署我的应用程序的安装MVC3,但显然安装程序不会删除以前的测试版或MVC3的RC版本.你必须通过加卸载MVC3的早期版本/删除,然后再安装新版本的程序.

我能够以两种方式完成这项工作:

  1. 从服务器完全卸载MVC3,然后使用我的应用程序部署MVC3 dll.
  2. 完全卸载MVC3后,从http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3安装最新版本

注意:在任何更改后重新启动IIS.(仅回收应用程序池也可能有效.)

  • 如果其他人遇到此问题,请确保您的Views目录中有一个有效的web.config作为问题中指示的SO.Bin部署为我工作,而不必像Jim那样安装MVC3. (2认同)