博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewBag & ViewData
阅读量:5338 次
发布时间:2019-06-15

本文共 1075 字,大约阅读时间需要 3 分钟。

 

 

ViewBag 和ViewData 是ASP.NET MVC 开发当中大家使用很多的传递数据的方法

VB可以称为VD的一块语法糖, VB是使用C# 4.0动态特征, 使得VD也具有动态特性。

下面就是VD和VB的对比:

 

ViewData

ViewBag

它是Key/Value字典集合

它是类型对像

从Asp.net MVC 1 就有了

ASP.NET MVC3 才有

基于Asp.net 3.5 framework

基于Asp.net 4.0与.net framework

ViewData比ViewBag快

ViewBag比ViewData慢

在ViewPage中查询数据时需要转换合适的类型

在ViewPage中查询数据时不需要类型转换

有一些类型转换代码

可读性更好

 

 

 

 

 

 

 

 

 

 

 

 

 

 

接下来我们看一下VB和VD 的使用:

Controller 中声明VD&VB:

ViewBag.Message = "Your application description page.";ViewData["HelloWorld"] = "Hello World!";

 

在view中怎样声明和绑定VD&VB:

@{    ViewBag.Title = "About";}

@ViewBag.Title.

@ViewBag.Message

@ViewData["HelloWorld"]

 

我们在页面中看到的效果:

 

 

ViewBag 还有一个跨页面的功能, 我们能用ViewBag 很巧妙的解决master page 中 header menu active的问题。

首先我们了解一下网站的框架:

我会把每一个div分成一个component, 使用的时候会调用component去使用。

这样的好处就是便于管理每一个component, 项目开发起来和angular的SPA比较类似。

缺点在于跨页面传递值的时候会跨几个页面。

 

 首先我们在service页面里面什么ViewBag.Menu

 

理论上我们要去component里面的header找这个ViewBag.Menu , 但是我们在header里面却找不到ViewBag. 

所以我们要去master page里面获取一下ViewBag的值, 然后再传去Header Controller.

 

我们在header controller里面也需要接收一下这个传入值

 

 之后我们就可以在header view里面接收并且做绑定了

 

 

转载于:https://www.cnblogs.com/TheMiao/p/9975134.html

你可能感兴趣的文章
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
struts1和struts2的区别
查看>>
Redis常用命令
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
YUI3自动加载树实现
查看>>
like tp
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
SDK目录结构
查看>>