首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC:淺析 TempData 機制

     編輯:關於ASP.NET

TempData 基本用法

ControllerBase.TempData 型別為 TempDataDictionary,用於**兩個連續 Action 之間**傳遞資料。

public ActionResult Index()
{
    TempData["MyName"] = "Tristan";
    return RedirectToAction("Index2");
}
public ActionResult Index2()
{
    var name = TempData["MyName"]; // 可取得 "Tristan"
    return View();
}

Index 設定 TempData,Index2 讀取

再次請求 Index2 時 TempData["MyName"] 為 null → **TempData 僅保留一個請求週期**。

生命週期原理

HTTP 無狀態,TempData 能跨請求傳值必有持久化機制。查看 Controller 原始碼:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    TempData.Load(); // 從 Provider 載入
    base.OnActionExecuting(filterContext);
}
protected override void OnResultExecuted(ResultExecutedContext filterContext)
{
    TempData.Save(); // 存回 Provider
    base.OnResultExecuted(filterContext);
}

Controller 原始碼片段

每次 Action 執行前 Load(),執行後 Save()。預設 Provider 為 SessionTempDataProvider,故資料存於 Session,自然跨請求可用且讀取即銷毀。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved