在SendRedirect客戶端重定向或者驗證碼等場景下,由於要跨請求的存取數據,是不能放到ViewBag、Model等中,需要"暫時存到Session中,用完了刪除"的需求:實現起來比較簡單:
存入:
Session["verifyCode"]=new Random().Next().Tostring();
讀取:
String code=(string)Session["verifyCode"];
if(code==model.Code)
{
//
}
asp.net mvc中提供了一個TempData讓這一切更簡單。
在一個Action存入TempData,在后續的Action一旦被讀取一次,數據自動銷毀。TempDta默認就是依賴於Session實現的,所以Session過期后,即使沒有讀取也會被銷毀。
應用場景:驗證碼
通俗的講:就是在設置好TempData的值后,讀取了一次TempData,第二次再去讀取,就會失效。
public ActionResult ViewTest() { TempData["code"] = "123456"; return View(); } public ActionResult TempDataTest() { string str = (string)TempData["code"]; return Content("code=" + str); }