日常生活中遇到的“不可通路,因為它具有一定的保護級别”錯誤,在此記錄友善日後翻閱。
情景:在控制器中定義一個Dictionary字典傳回對象,視圖中未對其進行轉型,并且由于拼寫錯誤寫錯了字段名(論壇中一位同學犯得錯誤)
Controllers代碼:
public ActionResult Index()
{
var data = new Dictionary<string, object>();
data.Add("a", 1);
return View(data);
}
Views代碼:
@foreach (var item in Model.keys)
{
<div>item</div>
}
錯誤資訊:
“System.Collections.Generic.Dictionary<string,object>.keys”不可通路,因為它具有一定的保護級别
問題解析:該問題是由于沒有良好習慣所緻,該問題在試圖中如果有以下代碼就會編譯不通過
@model Dictionary<string, object>
是以在程式設計中定義強語言類型會避免一些意想不到的問題。