在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData。MVC3中保留了ViewData的使用。ViewBag是动态类型(dynamic),ViewData是一个字典型的(Dictionary)。viewData比viewBag要快,且在viewPage中查询数据是需要转换数据类型,而viewBag不需要数据转换。TempData也可以用来向视图传递数据。只是ViewData和ViewBag的生命周期和View相同,只对当前View有用。而TempData则可以在不同的Action中进行传值,类似webform里的Seesion。 1、viewData。 在Controller中使用ViewData:
对应UsingViewData View的cshtml:
大家注意到,这里需要类型转换——as List<string>.
2、viewBag。
在Controller中使用viewBag:
对应View UsingViewBag 的cshtml的ViewBag:
3、TempData。 在Controller中使用TempData:
对于视图里使用TempData:
这里你会发现,TempData的值在取了一次后则会自动删除,这时我再刷新页面,则TempData["abc"]为Null了。
总结:ViewBag其实本质就是ViewData,只是多了层Dynamic控制,不过ViewData需要进行类型转换。TempData和ViewBag、ViewData的区别是生命周期不同,ViewData、ViewBag的生命周期和view同,TempData则可以在不同的Action中进行传值,但他调用一次的值就会被删除。 |
请发表评论