我正在研究MVC 4 WebGrid的代码,发现它被使用如下:
grid.Column("Id", format: (item) => item.GetSelectLink(item.Id)),
我不确定"item"参数是什么,所以我查看了源代码,发现它似乎是一个"WebGridRow"类。对我来说问题在于,上面的代码正在寻找一个".Id"属性,但该类中不存在该属性。唯一与其相近的属性看起来像是下面这样:
public object this[string name]
{
get
{
if (String.IsNullOrEmpty(name))
{
throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "name");
}
object value = null;
if (!TryGetMember(name, out value))
{
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture,
HelpersResources.WebGrid_ColumnNotFound, name));
}
return value;
}
}
我从来没有见过像“this[string name]”这样定义的属性,它是什么意思?是动态属性吗?
我试图在网上搜索,但不确定应该搜索什么,我找不到任何结果/解释。
请帮忙解答,谢谢。