介紹#
想像一個場景,比如註冊後跳轉到其他頁面:
- 在註冊頁面:註冊成功後,跳轉到登錄頁面
- 在登錄頁面:僅提示一次註冊成功
一般頁面跳轉後給出上一個頁面的操作提示是一件麻煩的事情,但使用 TempData 使得事情變得簡單。
TempData
中資料的生命週期是下次請求內,在請求結束就會被刪除,類似 Scoped
。
也就是說在第一次請求裡面為 TempData 屬性賦值,下一次請求訪問它的時候,能獲取值,但在請求結束後,值就會被刪除,由於 TempData 是一個 Dictionary,所以刪除的是鍵值對。
它的使用方式是:首先給屬性添加 [TempData]
標記,代表這是一個臨時資料,直到在另一個請求中讀取資料,讀取之後就被刪除了,不過它有多種使用方式:
- 訪問 TempData 值後在請求結束後不刪除,通過調用 Keep 或 Peek 來保持資料不被刪除。
- 訪問 TempData 值後在請求結束後刪除,直接使用字典訪問的方式
TempData["Message"]
具體參考官方文件:https://learn.microsoft.com/en-us/aspnet/core/fundamentals/app-state#tempdata
完整代碼參考:https://github.com/myesn/temp-data-in-asp-dotnet-core