Проблемы с перечислением коллекций PSObject в CSHTML, но не в CS
Я пишу небольшое веб-приложение, которое требует отображения свойств коллекции PSObject на веб-странице ASP.NET C#.
В моем классе контроллера, в файле.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" не содержит определения "Первый"
Я также попытался просто получить доступ к элементу 0, поскольку там уже есть нулевая проверка:
foreach (var prop in ViewBag.VIDatastores[0].Properties)
Который возвращает другое исключение:
Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
Теперь я, конечно, отладил это, и свойство Properties правильно перечисляет в окне Locals (оно совершенно не равно нулю).
Что я делаю не так?
Наиболее близкий соответствующий ответ, казалось, указывал на отсутствующую ссылку на сборку в web.config; но так как этот класс находится в System.dll (насколько мне известно), и на него уже ссылаются должным образом, я не уверен, что делать.