日常生活中遇到的“不可访问,因为它具有一定的保护级别”错误,在此记录方便日后翻阅。
情景:在控制器中定义一个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>
所以在编程中定义强语言类型会避免一些意想不到的问题。