我最近通过网络平台安装程序安装了ASP.NET MVC 3。我在Razor视图中没有对ViewBag的intellisense支持。 Intellisense在Razor视图中与模型一起工作正常。我试图重建解决方案,禁用ReSharper ......但我无法让它工作。
非常感谢任何帮助。
答案 0 :(得分:38)
ViewBag
属性的类型为dynamic
,这意味着没有智能感知。
ViewBag
是用于访问ViewData
字典的别名/替代语法。以下两行代码是等效的:
ViewBag.Message = "My message";
ViewData["Message"] = "My message";
ViewBag
提供比ViewData
略微更简洁的语法。另请注意,使用字符串键访问ViewData
也不提供IntelliSense,因此您不会丢失任何功能。
最后一点是ViewBag
和ViewData
使用相同的后备存储,因此使用一种方法设置属性可以使用另一种方法:
ViewBag.Message = "My message";
string message = ViewData["Message"];
// message is now "My message"
答案 1 :(得分:9)
添加marcind的ViewBag动态答案:
如果你想要智能感知,那么你将不得不传入一个强类型的对象,然后在你的视图中,你可以设置:@model Namespace.YourModel
当你尝试{{1}时会给你智能感知}}