2014年4月27日 星期日

[MVC] TempData、ViewData、ViewBag


Controller:

    ViewData["date1"] = DateTime.Now;
    ViewBag.date2 = DateTime.Now;


View:

    <div>
        @(((DateTime)ViewData["date2"]).ToShortDateString())
        <hr />
        @ViewBag.date1.ToShortDateString()
    </div>




from: http://www.dotblogs.com.tw/inblackbox/archive/2013/06/03/105240.aspx

1.ViewData
存放在物件中,生命週期為一個頁面。
Controller :
1public ActionResult Index()
2       {
3           ViewData["message"] = "訊息";
4           return View();
5       }
View :
1@ViewData["message"]
2.ViewBag
這是MVC 3 之後新增的,使用方式和ViewData一樣,差別在於ViewBag 使用 dynamic 型別,可免去手動轉型的麻煩,使用上較為方便,但也因為動態型別關係,速度上會略比ViewData來的慢(人體無感吧@@)。
Controller :

1public ActionResult Index()
2       {
3           ViewBag.message = "訊息";
4           return View();
5       }
View :
1@ViewBag.message
3.Temp Data
資料會儲存在Session 中,其生命週期為一個 Request,一旦Request結束就會被刪除。 因此我們可善用此特性讓資料跨不同Action傳遞至View,如RedirectToAction 中作使用,範例如下:




Controller :

01public ActionResult Index()
02{
03    TempData["status"] = "我是從index送過來的!";
04    return RedirectToAction("about");
05}
06 
07public ActionResult about()
08{
09    return View();
10}


http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html


0 意見:

張貼留言

 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template