我需要你的帮助。
请有人解释一下在asp.net mvc中使用viewData字典和viewData.Model有什么区别。
例如我可以写
viewData["list"] = list;
我可以写
viewData.Model = list;
那么它们之间的区别是什么,何时使用每一个;
解释一个例子将不胜感激。
答案 0 :(得分:0)
ViewData.Model是将模型对象从控制器的操作传递到视图的另一种方法。您可以使用此方法确保视图的模型是强类型的,然后可以使用视图中的“@Model”引用您的对象。
@Model.SomeProperty
或者(最好),您可以使用“return View(t);”将模型对象从操作传递到视图。其中t =对象。
return View(myObject);
最后,使用
ViewData.["someName"] = someObject
将是一个松散类型的对象,并且您无法使用View中的@Model引用您的对象。相反,您必须将ViewData作为模型类型转换为View才能引用它。例如:
// in the action:
ViewData["obj"] = someObject;
// in the view:
var objData = ViewData["obj"] as MyObjectClass
// referencing a property of the object:
@objData.SomeProperty
因此,您可以看到选择此方法时需要额外的工作。就个人而言,我不经常使用ViewData ...当我需要向View发送一些未包含在视图模型中的内容时,ViewBag对我更有意义。