我正在創建一個使用ASP.Net MVC和剃鬚刀的網頁。在我的cshtml文件中,我正在檢查字典中是否存在密鑰。如果該鍵不存在,頁面崩潰並且出現KeyNotFoundException。Dictionary.ContainsKey拋出KeyNotFoundException
我的模型
Dictionary<string,string> MyDictionary = new Dictionary<string,string>(){
{ "ValidKey", "ValidValue"}
};
CSHTML代碼
@if (Model.MyDictionary.ContainsKey("ValidKey")) {
<span>@Model.MyDictionary["ValidKey"]</span>
}
@if (Model.MyDictionary.ContainsKey("InvalidKey")) {
<span>@Model.MyDictionary["InvalidKey"]</span>
}
第一次檢查工作正常,但第二個崩潰。我不明白爲什麼我會在嘗試檢查密鑰時得到KeyNotFoundException。有什麼建議麼?
我不能相信這一點,這是一個錯字。 ContainsKey使用的是正確的密鑰,然後當試圖訪問該值時,我使用的密鑰丟失了一個字母。我一直認爲這是ContainsKey,因爲那是在錯誤頁面中突出顯示的部分。 – dburgener
會發生在我們身上:) –
這就是爲什麼當你認爲它的行爲奇怪時,查看一個函數的文檔是很重要的。如果你要查找ContainsKey,你會發現它不能拋出一個KeyNotFoundException,它會指向你實際的問題 –