接續昨天的【由Controller傳遞到View】的方式,尚有以下幾種:
ViewData:使用方法類似Session,使用Key/Value的概念存取,在Controller指定,由View接收。
Controller:
public ActionResult DemoViewData()
{
ViewData["Name"]="Gogoro";
return View();
}
View:
@ViewData["Name"]
ViewBag:使用方法為ViewData.Key名稱,再指定Value值;使用上不用特意轉型是方便的特點,在Controller指定後,由View接收。
註:這也是昨天【單Model資料傳遞】的做法。
Controller:
public ActionResult DemoViewBag()
{
ViewBag.Name="Gogoro";
return View();
}
View:
@ViewBag.Name
TempData:使用方法類似ViewData,特點是可以跨Action來傳值!
若是透過RedirectToAction導頁到不同的Action時,則可以取得到上一個Action所存放在TempData的資料來達到延長TempData的讀取;另外,若是需要指定保留某個值的話可以使用TempData.Keep(string Key),但使用一次後就會消失。
TempData["Name"]="LaLaGo";
@TempData["Name"]
好的,今天就先到這兒,明天再來繼續吧!
參考來源:
[Asp .Net MVC] Controller and View 2 - 資料傳遞篇