我正在编写一个小型 Web 应用程序,需要在 ASP.NET C# 网页上显示 PSObject 集合的属性。
在我的控制器类(一个 .cs 文件)中,我可以访问集合的 First() 方法,如下所示:
Collection<PSObject> test = new Collection<PSObject>();
test.First();
但是,当我尝试在我的 .cshtml 中执行类似操作时,尝试枚举表头的属性名称时,我得到一个异常,即该方法不存在。
<tr>
@{
if (ViewBag.VIDatastores != null)
{
foreach (var prop in ViewBag.VIDatastores.First().Properties)
{
<th>@prop.Name</th>
}
}
}
</tr>
异常详细信息:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:“System.Collections.ObjectModel.Collection”不包含“First”的定义
我也尝试过简单地访问元素 0,因为已经有一个空检查:
foreach (var prop in ViewBag.VIDatastores[0].Properties)
它返回一个不同的异常:
异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
现在我当然对此进行了调试,并且 Properties 属性在 Locals 窗口中正确枚举(它绝对不是空的)。
我做错了什么?
最接近的匹配答案似乎指向 web.config 中缺少的程序集引用;但由于这个类在 System.dll 中(据我所知)并且它已经被正确引用,我不知道该怎么做。