Проблемы с перечислением коллекций 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 (насколько мне известно), и на него уже ссылаются должным образом, я не уверен, что делать.

0 ответов

Другие вопросы по тегам