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

时间:2011-01-17 23:37:31

标签: intellisense asp.net-mvc-3 razor

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:38)

ViewBag属性的类型为dynamic,这意味着没有智能感知。

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

ViewBag.Message = "My message";
ViewData["Message"] = "My message";

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

最后一点是ViewBagViewData使用相同的后备存储,因此使用一种方法设置属性可以使用另一种方法:

ViewBag.Message = "My message";
string message = ViewData["Message"];
// message is now "My message"

答案 1 :(得分:9)

添加marcind的ViewBag动态答案:

如果你想要智能感知,那么你将不得不传入一个强类型的对象,然后在你的视图中,你可以设置:@model Namespace.YourModel当你尝试{{1}时会给你智能感知}}