Asp.net mvc 升级到MVC 3:CS0103:name';视图';在当前上下文中不存在

Asp.net mvc 升级到MVC 3:CS0103:name';视图';在当前上下文中不存在,asp.net-mvc,razor,Asp.net Mvc,Razor,我刚刚更新到ASP.NETMVC3RC2 现在,每当呈现cshtml视图时,我正在使用的示例应用程序都会产生以下错误: CS0103:名称“视图”在当前上下文中不存在 它在线路上出现故障: @{ View.Title = "MyView"; } 。。。并在Razor文件的代码中遇到视图的任何其他地方失败 我已将web.config从新的应用程序视图文件夹复制到示例应用程序,但问题仍然存在 全新的应用程序运行时不会出现问题 我还重建了解决方案,运行干净的解决方案。没有快乐 我已经好几天没做

我刚刚更新到ASP.NETMVC3RC2

现在,每当呈现cshtml视图时,我正在使用的示例应用程序都会产生以下错误:

CS0103:名称“视图”在当前上下文中不存在

它在线路上出现故障:

@{
   View.Title = "MyView";
}
。。。并在Razor文件的代码中遇到视图的任何其他地方失败

我已将web.config从新的应用程序视图文件夹复制到示例应用程序,但问题仍然存在

全新的应用程序运行时不会出现问题

我还重建了解决方案,运行干净的解决方案。没有快乐


我已经好几天没做样品了。所以这可能是一个与RC2无关的问题…

它被重命名为“ViewBag”。您可以从RC1->RC2中了解更多有关更改的信息。我也有同样的问题,但我只是尝试猜测现在要使用什么,我最终使用了:

@Page.Title = "The title"
虽然我不确定现在的“最佳实践”是什么,但它确实奏效了


此外,我还认为ViewBag是以前的ViewModel,而不仅仅是View,我正在添加它,以防其他人看到它。另一个可能的原因是找不到布局。我部署到IIS,并且(在注释掉有问题的行之后)发现布局在web部署期间没有被复制。在我的例子中,这是因为布局的构建操作已从内容更改为无


编辑:事实上,我已经安装了MVC3RC。以上只是一个不同的症状。部署计算机具有RTM,这暴露了问题。正如awrigley所说,它现在被称为ViewBag。

检查了引用,它们似乎是相同的文件版本。例如:System.Web.Mvc文件版本:3.11209.0对于我使用RC1开发的示例应用程序和使用RC2银行创建的新应用程序,我忽略了Scott Guthrie博客文章中的这一点。不知道为什么您认为这很奇怪-在视图中有显示逻辑是可以的。大量的样本都使用这种方法。我认为ViewBag是一个可怕的名称,但它比普通视图更具描述性。@awrigley当然可以在视图中使用显示逻辑,但ViewBag是一个属性集合,这些属性通常在控制器中设置,以便在视图中使用。。。我确信您有一个有效的用例,但我不明白您为什么要在视图中的ViewBag中设置数据,我只希望从中“读取”。“ViewBag”现在将成为我的名字,用来称呼我不喜欢的人。@awrigley最后重新问了这个问题;在视图中调用它的原因是将信息(本例中为视图标题)传递回“布局”视图。这当然是合法的。抱歉,我可能造成了Hanks的混淆,但我的问题是将属性重命名为ViewBag。