日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC视图和控制器之间的传值总结(一)

發布時間:2024/4/15 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC视图和控制器之间的传值总结(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、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; }<!DOCTYPE html><html> <head><meta name="viewport" content="width=device-width" /><title>Index2</title> </head> <body><div><span>ViewBag: 姓名:@ViewBag.name</span><span>ViewData: 姓名:@ViewData["name"]</span></div> </body> </html>

  結果:

? ? ?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"; }<span>姓名:@ViewBag.student.name</span>?<span>年齡:@ViewBag.student.age</span> @{var stu = @ViewData["student"] as @MVC傳值.Models.Student; } <span>姓名:@stu.name</span>?<span>年齡:@stu.age</span> <a href="JumpMethod" >跳轉到Test1View</a>

 ??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 <span>姓名: @ViewBag.name</span>&nbsp;<span>年齡:@TempData["age"]</span>

?

轉載于:https://www.cnblogs.com/cherish836138981/articles/6586597.html

總結

以上是生活随笔為你收集整理的ASP.NET MVC视图和控制器之间的传值总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。