Asp.net mvc 在asp.net mvc中使用viewData dictionary和viewData.Model有什么区别
我需要你的帮助 请解释一下在asp.net mvc中使用viewData dictionary和viewData.Model的区别 例如,我会写作Asp.net mvc 在asp.net mvc中使用viewData dictionary和viewData.Model有什么区别,asp.net-mvc,Asp.net Mvc,我需要你的帮助 请解释一下在asp.net mvc中使用viewData dictionary和viewData.Model的区别 例如,我会写作 viewData["list"] = list; 我会写 viewData.Model = list; 那么它们之间的区别是什么,何时使用它们 请举例说明。ViewData.Model只是将模型对象从控制器的操作传递到视图的另一种方式。可以使用此方法确保视图的模型为强类型,然后可以在视图中使用@model引用对象 @Model.SomePrope
viewData["list"] = list;
我会写
viewData.Model = list;
那么它们之间的区别是什么,何时使用它们
请举例说明。ViewData.Model只是将模型对象从控制器的操作传递到视图的另一种方式。可以使用此方法确保视图的模型为强类型,然后可以在视图中使用@model引用对象
@Model.SomeProperty
或者,最好使用返回视图将模型对象从动作传递到视图;其中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。。。当我需要将未包含在viewmodel中的内容发送到视图时,ViewBag对我来说更有意义