博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC视图和控制器之间的传值总结(一)
阅读量:5067 次
发布时间:2019-06-12

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

一、Control往View传递值

     1.1 ViewBag

          ViewBag的后面接的是动态对象,它会在程序运行的时候动态解析。具体用法为ViewBag.Key,Key为Data在View中的唯一识别。

          ViewBag其实本质就是ViewData,只是多了层Dynamic控制。他们的Key是共用的,如ViewBag.name其实和ViewData["name"]源代码是一样的,

          修改了其中任何一个,两个都会被修改。ViewData和ViewBag中的值可以互相访问。

          代码:

         Control端:

      

public ActionResult Index2()        {            ViewBag.name = "张三";            ViewData["name"] = "李四";            return View();        }

  

         View端:

@{    Layout = null;}    
Index2
ViewBag: 姓名:@ViewBag.name
ViewData: 姓名:@ViewData["name"]

  结果:

     ViewBag: 姓名:李四 ViewData: 姓名:李四

  1.2 ViewData

         ViewData它key/Value的键值对。

      Control端:

ViewData["name"] = "张三";

      View端:

<span>年龄:@TempData["age"]</span>

      ViewData和ViewBag的主要区别:ViewPage查询数据的时候,ViewData需要做数据类型的转换(必须显式转换),而ViewBag不需要做一些数据类型的转换(隐式转换)。

     Control端:

   

public ActionResult Index()        {            Student stu = new Student();            stu.name = "张三";            stu.age = 20;            ViewBag.student = stu;            ViewData["student"] = stu;            return View();        }

  

     View端:

@{    ViewBag.Title = "Index";}姓名:@ViewBag.student.name 年龄:@ViewBag.student.age@{    var stu = @ViewData["student"] as @MVC传值.Models.Student;}姓名:@stu.name 年龄:@stu.age跳转到Test1View

   1.3 TempData 

TempData只保存到下一个请求中,下一个请求完了之后,TempData就会被删除了。

TempData每一项即每一个Key对应的项次只能被(View或者Controller)使用一次,就会被销毁。

Request的定义从宏观上看就是页面刷新了一次。

至于TempData的生存周期请参考:http://www.cnblogs.com/jhxk/articles/4773527.html

Control端:

public ActionResult Index()        {            TempData["age"] = 20;            return View();        }        public ActionResult JumpMethod()        {            //TempData["age"] = 21;            return RedirectToAction("Test1");        }        public ActionResult Test1()        {            return View();        }

  

View端:

1 姓名: @ViewBag.name 年龄:@TempData["age"]

 

转载于:https://www.cnblogs.com/cherish836138981/articles/6586597.html

你可能感兴趣的文章