天天看点

不可访问,因为它具有一定的保护级别(1)

日常生活中遇到的“不可访问,因为它具有一定的保护级别”错误,在此记录方便日后翻阅。

情景:在控制器中定义一个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>
           

所以在编程中定义强语言类型会避免一些意想不到的问题。