.Net Core----關於MVC中TempData持久化問題


最近在做mvc跨控制器傳值的時候發現一個問題,就是有時候TempData的值為null,然后查閱了許多資料,發現了許多都是邏輯和原理什么的(想看原理可以查看原理的文章,本文是用法),但是真正解決的辦法什么案例都沒有,

於是就把自己的代碼當成案例給貼出來,方便更直觀的解決問題。

因為TempData生命周期確實很短,所以需要持久化一下:

        public ActionResult Index()
        {
            TempData["message"] = "123asd";
            return view();
        }

        public ActionResult GetTemData()
        {
            var foredid = TempData["message"].ToString();
            var  result=_content.userinfo(foredid);
return View(); }

在當前Action方法中調用Keep方法則保證在當前請求中TempData對象中所存儲的鍵都不會被移除。

 

總結:

1.當利用TempData對象存儲值而未調用TempData.Keep方法時,此時只要該對象被已讀,然后該對象中的所有項將被標記為刪除狀態。

2.若調用TempData.Keep(string key)方法,此時不會進行標記。

3.RedirectToRouteResult和RedirectResult總是會調用TempData.Keep()方法,保證該對象中的所有項不會被移除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM