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