MVC ViewData与ViewBag的区别

时间:2022-04-20 12:05:55

一、ViewData

  1、ViewData派生自ViewDataDictionary,所以它具有字典的属性,例如:ContainsKey 、Add 、Remove 和 Clear ;

  2、字典键值是字符串类型,所以可以带空格,例如ViewData["a  b"];

  3、在视图中,只有string类型的值才能直接使用,其他的必须强制转换;

二、ViewBag

  1、ViewBag派生自 DynamicViewData,所以它可以使用' '.'用法(ViewBag.A="张三"),它是动态类型,不用强制转换;

  2、ViewBag 的语法使添加到控制器和视图的速度更快;

  3、更易于检查 NULL 值。 示例: @ViewBag.Person?.Name;