iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
自我挑戰組

ASP.NET MVC5從入門到退坑系列 第 18

[Day18]ViewData|ViewBag|TempData

  • 分享至 

  • xImage
  •  

在Web Form的專案,後端程式會使用控制項元件來取得資料,並且將資料顯示在控制項內,ASP.NET則會將頁面中的物件轉變為HTML,但是在MVC架構中並沒有像Web Form的控制項,若要從後端傳資料或顯示資料到前端則可以透過ViewData|ViewBag|TempData這幾種方式


ViewData

ViewData只對一個Action有作用,生命週期只存在單一頁面中,若頁面重新導向ViewData的資料便會清除

//Controller
public ActionResult Index(){
  ViewData["msg"]="從Index選擇器所傳來的ViewData訊息!"
}
//View
<p>@ViewData["msg"]</p>//這裡會顯示從Index選擇器所傳來的ViewData訊息!

ViewBag

ViewBag與ViewData有相同的功用,生命週期也一樣僅限在單一頁面中,只要重新導向後資料便會清除,與ViewData的差異是在ViewBag可產生動態屬性,不須再進行類別的轉換

//Controller
public ActionResult Index(){
  ViewBag.msg="從Index選擇器所傳來的ViewBag訊息!"
}
//View
<p>@ViewBag.msg</p>//這裡會顯示從Index選擇器所傳來的ViewBag訊息!

TempData

TempData預設是將資料放在Session,所以生命週期是存在一整個Request範圍,即使網頁導向後還是能透過TempData取得後端所傳來的資料

//Controller
public ActionResult Index(){
  TempData["msg"]="從Index選擇器所傳來的TempData訊息!"
}
//View
<p>@TempData["msg"]</p>//這裡會顯示從Index選擇器所傳來的TempData訊息!

上一篇
[Day17]ViewModel多表查詢
下一篇
[Day19]模型繫結
系列文
ASP.NET MVC5從入門到退坑30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言