2015-04-01 127 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對我更有意義。

相關問題