ASP.NET MVC 3 - ViewBag属性不提供IntelliSense

šlj*_*ker 11 intellisense razor asp.net-mvc-3

我最近通过Web平台安装程序安装了ASP.NET MVC 3.我在Razor视图中没有对ViewBag的intellisense支持.Intellisense在Razor视图中与模型一起工作正常.我试图重建解决方案,禁用ReSharper ...但我无法让它工作.

任何帮助将不胜感激.

mar*_*ind 38

ViewBag属性键入为dynamic,这意味着没有IntelliSense.

ViewBag是用于访问ViewData字典的别名/替代语法.以下两行代码是等效的:

ViewBag.Message = "My message";
ViewData["Message"] = "My message";
Run Code Online (Sandbox Code Playgroud)

ViewBag提供略微更简洁的语法ViewData.另请注意,ViewData使用字符串键访问也不提供IntelliSense,因此您不会丢失任何功能.

最后一点是,ViewBagViewData使用相同的后备存储,这样的设置使用一种方法的特性使得它可以使用另一种方法:

ViewBag.Message = "My message";
string message = ViewData["Message"];
// message is now "My message"
Run Code Online (Sandbox Code Playgroud)

  • Visual Studio在`ViewBag`下显示一条红线,看起来像一个错误,非常烦人,是否有任何设置禁用它. (2认同)

ajm*_*jma 9

添加到marcind的ViewBag动态回答:

如果你想智能感知,那么你将有一个强类型对象传递,然后在您看来,您可以设置:@model Namespace.YourModel它会给你的智能感知,当你尝试做@Model.Property