亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

TempData keep()與peek()

TempData keep()與peek()

一只名叫tom的貓 2019-11-26 14:34:01
keep()和peek()有什么區別?MSDN說:保持(): marks the specified key in the dictionary for retention.窺視(): returns an object that contains the element that is associated with the specified key, without marking the key for deletion.我不能真正知道有什么區別,難道它們都為另一個請求保留了價值嗎?
查看完整描述

3 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

TempDataDictionary讀取中的對象時,該對象將在該請求結束時標記為刪除。


這意味著如果您在TempData上放一些東西


TempData["value"] = "someValueForNextRequest";

并且在您訪問它的另一個請求中,該值將存在,但是一旦您讀取它,該值將被標記為刪除:


//second request, read value and is marked for deletion

object value = TempData["value"];


//third request, value is not there as it was deleted at the end of the second request

TempData["value"] == null

該Peek和Keep方法,使您無需將其標記為刪除讀取值。假設我們回到第一個將值保存到TempData的請求。


有了Peek該值,而沒有通過一次調用將其標記為刪除,請參見msdn:


//second request, PEEK value so it is not deleted at the end of the request

object value = TempData.Peek("value");


//third request, read value and mark it for deletion

object value = TempData["value"];

用Keep您指定要保留的標記為刪除的密鑰。檢索對象并隨后保存以將其刪除,這是兩個不同的調用。參見msdn


//second request, get value marking it from deletion

object value = TempData["value"];

//later on decide to keep it

TempData.Keep("value");


//third request, read value and mark it for deletion

object value = TempData["value"];

您可以Peek在始終希望保留其他請求的值時使用。Keep保留值時使用取決于其他邏輯。


關于TempData 在這里和這里的工作方式,您有兩個很好的問題


希望能幫助到你!


查看完整回答
反對 回復 2019-11-26
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

TempData還是一個字典對象,在HTTP請求期間一直存在。因此,TempData可用于維護一個控制器動作與另一控制器動作之間的數據。

TempData每次用于檢查空值。TempData包含兩個方法keep()和peek(),用于維護從一個控制器動作到其他控制器動作的數據狀態。

當 TempDataDictionary 對象被讀取時,在請求的標記的結束作為刪除到當前讀取對象。

保持()PEEK()方法用于無缺失讀取數據中的當前讀取的對象。

當您始終想保留/阻止其他請求的值時,可以使用Peek()。當阻止/保持該值取決于其他邏輯時,可以使用Keep()。

TempData.Peek()和TempData.Keep()中的重載如下所示。

TempData.Keep()有2個重載方法。

  1. void keep():威脅所有在當前請求完成時未刪除的數據。

  2. void keep(字符串鍵):借助名稱將特定項保留在TempData中。

TempData.Peek()沒有重載方法。

  1. object peek(字符串鍵):返回一個對象,其中包含具有特定鍵的項目,而不需要刪除鍵。

下面給出了TempData.Keep()和TempData.Peek()方法的返回類型的示例。

public void Keep(字符串鍵){_retainedKeys.Add(key); }

公共對象Peek(字符串鍵){對象值=值;返回值 }


查看完整回答
反對 回復 2019-11-26
  • 3 回答
  • 0 關注
  • 820 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號