如何解决“当前上下文中不存在名称'ViewData'”

时间:2011-06-27 14:34:32

标签: asp.net-mvc-3 viewdata

当我尝试使用ViewData从控制器向我的视图传递数据时,我在视图中引用ViewData属性时会在标题中出现错误

我正在使用Razor View引擎,有几个与此相关的帖子,但它们似乎与Web表单实现相关

我怀疑Razor的引用存在问题:我的配置文件有很多警告:

enter image description here

这些类型引用是警告:无效的模块限定:无法解析程序集System.Web.WebPages.Razor

通用的MVC工作正常(仅使用模型引用)但尝试访问ViewData - 没有运气

1 个答案:

答案 0 :(得分:2)

在MVC3中添加了ViewBag。它只是ViewData周围的动态包装器。现在你可以使用类似的东西:

ViewBag.Title = "Test"; 

使用ViewBag而不是ViewData的一个很好的好处是我们不必在使用它们之前将ViewBag.Date强制转换为DateTime,将ViewBag.Post转换为Post,将ViewBag.Tags强制转换为字符串数组。这减少了视野中的噪音。

但正如Darin在评论中所说,最好使用强类型视图。

您在web.config中遇到的错误与此无关。但是我不确定这些错误的确切原因是什么,但似乎它不会影响应用程序的运行。