2015-04-01 126 views
0

我需要你的帮助。在asp.net中使用viewData字典和viewData.Model有什么区别mvc

请谁能解释我有什么区别使用viewData字典和viewData.Model在asp.net mvc。

例如,我可以写

viewData["list"] = list; 

,我可以写

viewData.Model = list; 

所以就是使用每一个他们,当之间的区别;

举一个例子的解释将不胜感激。

回答

0

ViewData.Model只是将模型对象从控制器的动作传递给视图的另一种方式。您可以使用此方法确保您的视图的模型是强类型的,然后可以使用View中的“@Model”引用您的对象。另外(最好),你可以传递你的模型对象从动作来使用“返回视图(t);”来查看。其中t =物体。

return View(myObject); 

最后,使用

ViewData.["someName"] = someObject 

将是一个松散类型的对象,并使用@Model从查看你不能引用您的对象。相反,您必须在视图中将ViewData作为模型类型来转换,以便能够引用它。例如:

// in the action: 
ViewData["obj"] = someObject; 

// in the view: 
var objData = ViewData["obj"] as MyObjectClass 

// referencing a property of the object: 
@objData.SomeProperty 

所以你可以看到当你选择这种方法时会有一些额外的工作。就我个人而言,我并不经常使用ViewData ......当我需要将某些内容作为视图模型的一部分包含在视图中时,ViewBag对我更有意义。

相关问题