MVC中数据传递 ViewBag的使用

来源:互联网 发布:linux内核双机调试 编辑:程序博客网 时间:2024/05/18 02:13

原文链接:http://blog.csdn.net/fanbin168/article/details/44803437

ViewBag

MVC3中 ViewBag、ViewData和TempData的使用和区别

在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData。MVC3中保留了ViewData的使用。ViewBag 是动态类型(dynamic),ViewData 是一个字典型的(Dictionary)。

ViewBag和ViewData的区别:
ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析。所以在视图中获取它的数据时候不需要进行类型转换

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

Contorller

[csharp] view plain copy
  1. <pre class="csharp" name="code">using NewOjbect.Models;  
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Linq;  
  5. using System.Web;  
  6. using System.Web.Mvc;  
  7.   
  8. namespace NewOjbect.Controllers  
  9. {  
  10.     public class HomeController : Controller  
  11.     {        
  12.         public ActionResult Index()  
  13.         {  
  14.             ViewBag.UserName = "无盐海";  
  15.             ViewBag.Age = "25";  
  16.             ViewBag.Gender = 1;  
  17.   
  18.             string[] Itmes = new string[] { "中国""美国""德国" };  
  19.             ViewBag.itemsA = Itmes;// viewbag是一个新的dynamic类型关键字的封装器 //ViewData["Items"] = items;  
  20.               
  21.             return View();                   
  22.         }  
  23.     }  
  24. }  

View

[html] view plain copy
  1. <pre class="html" name="code"><html>  
  2. <head>  
  3.     <meta name="viewport" content="width=device-width" />  
  4.     <title>Test2</title>  
  5. </head>  
  6. <body>  
  7.     <div>  
  8.         用户名:<input type="text" id="UserName" name="UserName" value="@ViewBag.UserName" /></br>  
  9.   
  10.         年  龄: <input type="text" id="age" name="age" value=@ViewBag.Age /></br>  
  11.   
  12.         性  别:<input type="text" id="Gender" name="Gender" value="@ViewBag.Gender" /></br>  
  13.   
  14.         <button>提交</button>  
  15.   
  16.         <!---这里输出国家名-->>  
  17.         @foreach (dynamic item in ViewBag.itemsA)  
  18.         {  
  19.             <p>@item</p>  
  20.         }  
  21.     </div>  
  22. </body>  
  23. </html>  


阅读全文
0 0
原创粉丝点击