MVC中ViewBag 和 ViewData 的用法和区别

ViewData

 

ViewData 是一个特殊的字典类的名称,我们可以用标准的字典语法进行修改或赋值,比如: ViewData["Name"] = "Jack";

 

ViewBag

 

ViewBag 是 asp.net mvc3 中对 ViewData 的一种动态封装,用法更方便。他的赋值方法是:

 ViewBag.Name = "Jack"; 也就是说 ViewData["Name"] 和 ViewBag.Name 是一样的效果

 

ViewBag 和 ViewData 的区别

虽说用 ViewBag 来代替 ViewData 使用着更快捷,但是相对于 ViewData 来说,ViewBag 还 是有一些不能用的地方: 1.ViewBag 要访问的必须是一个有效的标识符,否则无效。比如:ViewData["Query Income"] 就不能使用 ViewBag 来访问。因为“Query Income”中有无效的 C#标识符 空格。

 

2.动态值不能作为一个参数传递给扩展方法。因为 C#为了选择正确的扩展方法规定必须标 明每一个参数的类型。如果参数中有任何一个参数是动态的就无法通过编译。比如:

 

@Html.TextBox("Name",ViewBag.Name)就会编译失败。

 

解决方法:

  •  将 ViewBag.Name 替换为 ViewData["Name"];

② 把 ViewBag.Name 替换为一个具体类型的参数:(string)ViewBag.Name;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值