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對我更有意義。