MVC 的 ViewData 和ViewBag 的使用方法带案例

ViewDate是以键值对的方式储存数据 里面的数据也是用键值对的范式取出来 在视图也上直接取出来便利就行
ViewBag 可以把它看做一个类 下面有很多公共字段 你可以随便起名字 。 到前台也是把你存的字段取出来 这个字段里你可以存集合 也可以存数组 也可以存一个类 是个object类型的

个人建议再存数组和集合的时候用ViewDate 的发难存案存 。在没有实体类的时候 展示一组数据 数据量不大的时候也可以用ViewBag 看案例

后台存数据
  List<Account> list = new List<Account>();
for (int i = 0; i < 20; i++)
{
    Account a = new Account();
    a.Address = "北京大兴"+i;
    a.Age = 17+i;
    a.Name = "例会"+i;
    a.Tel = "13611111111111"+i;
    list.Add(a);
}

ViewData.Add("list", list);

前台取数据

<div>
@{
List<Account> list = ViewData["list"] as List<Account>;
}
<div id="UlClick">
  <ul>
@for (int i = 0; i < list.Count; i++)
{
           <li style="list-style:none">
            @list[i].Name
               <div style="display:none"> @list[i].Age</div>

<div style="display:none"> @list[i].Tel</div>

        <div style="display:none"> @list[i].Address</div>
     </li>
}
  </ul>
</div>
</div>

ViewBag 则是

ViewBag.Address=“北京大兴”;
ViewBag.Age=17;
ViewBag.Name="例会"
ViewBag.Tel="13611111111111";
//注* 上面的Address是没有智能提示的 但是你可以随便定义 和定义字段一样; 取得时候也是一样

前台取数据
<li style="list-style:none">
ViewBag.Name
<div style="display:none"> @ViewBag.Age</div>

<div style="display:none"> @ViewBag.Tel</div>

<div style="display:none"> @ViewBag.Address</div>
</li>

ViewBag 如果是集合的话

List<Account> list = new List<Account>();
for (int i = 0; i < 20; i++)
{
Account a = new Account();
a.Address = "北京大兴"+i;
a.Age = 17+i;
a.Name = "例会"+i;
a.Tel = "13611111111111"+i;
list.Add(a);
}
ViewBag.list=list;

前台 就变成这样了
<div id="UlClick">
<ul>
@for (int i = 0; i < ViewBag.list.Count; i++)
{
<li style="list-style:none">
@ViewBag.list[i].Name
<div style="display:none"> @ViewBag.list[i].Age</div>

<div style="display:none"> @ViewBag.list[i].Tel</div>

<div style="display:none"> @ViewBag.list[i].Address</div>
</li>
}
</ul>

取数据这两种都可以用 具体要看你怎么用了 主要是灵活运用。

时间: 2024-11-13 10:35:33

MVC 的 ViewData 和ViewBag 的使用方法带案例的相关文章

mvc中viewdata 和viewbag的区别

mvc中viewdata 和viewbag的区别 2013-06-18 15:43:45|  分类:          MVC                          |举报        |字号 订阅 ViewData                                                                           ViewBag 它是Key/Value字典集合                                     

Asp.net MVC的ViewData与ViewBag以及TemplateData的使用与区别

ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才有 基于Asp.net 3.5 framework 基于Asp.net 4.0与.net framework ViewData比ViewBag快 ViewBag比ViewData慢 在ViewPage中查询数据时需要转换合适的类型 在ViewPage中查询数据时不需要类型转换 有一些类型转换代码 可读性更好 参考:http://www.c

ASP.NET MVC中viewData、viewBag和templateData的使用与区别

一:类型比较 1.1)ViewBag是动态类型(dynamic). 1.2)ViewData是一个字典型的(Dictionary)-->TempDataDictionary. 1.3)TempData是一个字典型的(Dictionary)-->ViewDataDictionary. 二:生命周期和作用域 2.1)ViewBag生命周期和View相同,只能作用于一个View. 2.2)ViewData生命周期和View相同,只能作用于一个View. 2.3)TempData生命周期为被调用前一直

Core Mvc传值ViewData、ViewBag和return view(model)

先定义一个Model类Student namespace Lession.Models { public class Student { public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } } } 控制器如下: using Lession.Models; using Microsoft.AspNetCore.Mvc; namespace Lession.Cont

ASP.NET MVC中ViewData、ViewBag和TempData

1.ViewData 1.1 ViewData继承了IDictionary<string, object>,因此在设置ViewData属性时,传入key必须要字符串型别,value可以是任意类型. 1.2 ViewData它只会存在这次的HTTP要求而已,而不像Session可以将数据带到下HTTP要求. public class TestController : Controller { public ActionResult Index() { ViewData["msg&quo

.NET MVC TempData、ViewData、ViewBag

说明: 原文作者贤新 原文地址:http://www.cnblogs.com/chenxinblogs/p/4852813.html ViewData和ViewBag主要用于将数据从控制器中传递到视图中去,ViewData本身就是一个字典.以KeyValue的形式存取值.ViewData的Value类型是Object,也就是可以将任意类型的值存储到ViewData中去,平时我们都在控制器中直接使用ViewData.本质上ViewData只是Controller父类ControllerBase中的

MVC Controller向View传值(ViewData与ViewBag)

最近在开发项目中,使用的是ASP.NET MVC由于之前并没有接触,对于它的传值方式有些陌生,在这里进行初步总结积累学习! 一:使用 ViewData使用: public ActionResult Index() { List<string> colors = new List<string>(); colors.Add("red"); colors.Add("green"); colors.Add("blue"); Vi

ASP.NET MVC程序传值方式:ViewData,ViewBag,TempData和Session

转载原地址 http://www.cnblogs.com/sunshineground/p/4350216.html 在ASP.NET MVC中,页面间Controller与View之间主要有以下几种小量数据的传值方式:ViewData.ViewBag.TempData和Session变量. 下面就这四种传值方式做出详细介绍. 一.ViewData ViewData是一个继承自ViewDataDictionary类的Dictionary对象,它只能存储String Key/Object Valu

MVC传递Model之TempData、ViewData、ViewBag区别及用途

MVC使用过程中经常会用到TempData.ViewData.ViewBag三种方式,这三种什么区别呢? TempData:默认存储于Session中,可通过继承ITempDataProvider接口改变, 生命周期:经过一次Controller传递就失效,即View读取一次后对应的TempData即从TempData集合中删除,不过如果TempData未被View读取之前,其值可在Controller之间传递.PS:如果你不想TempData使用后就删除,您可以通过TempData.Peek(