ViewBag(动态视图)、ViewData、ViewDataDictionary区分

ViewData和ViewBag定义属性

ViewBag(动态视图)、ViewData、ViewDataDictionary区分

一.ViewData的属性

ViewBag(动态视图)、ViewData、ViewDataDictionary区分

ViewBag的属性

ViewBag(动态视图)、ViewData、ViewDataDictionary区分

ViewData例子

ViewBag(动态视图)、ViewData、ViewDataDictionary区分

ViewBag例子

ViewBag(动态视图)、ViewData、ViewDataDictionary区分

ViewData与ViewBag的缺点:

虽然ViewBag和ViewData可以在Controller和View之间传递内容,但它们并非最佳选择,ViewBag和ViewData的缺点有:

1、ViewData保存的是对象类型,使用之前需要进行强制转换为其对应类型,会增加额外的性能负担。

2、在MVC中Controller和View是松散的连接,View和Controller不能互相及时了解对方所做的变化。倘若Controller中传递一个ViewData或者ViewBag值时,开发人员正在View中写入内容,则必须记录下传递来的值,因此建议Controller和View是同一开发人员,否则会带来很多问题,降低开发效率。

ViewData与ViewBag的区别

ViewBag(动态视图)、ViewData、ViewDataDictionary区分

1.ViewBag(动态类型视图)使用时直接添加属性赋值即可ViewBag.myName

2.ViewData是字典类型,赋值方式用字典方式,通过key值读取对应的value,ViewData["myName"]

3.ViewBag和ViewData只在当前Action中有效,等同于View

4.ViewData和ViewBag中的值可以互相访问,因为ViewBag的实现中包含了ViewData