Я создаю приложение MVC4 с использованием механизма Razor View, и я хотел бы принять решение в моем View
на основе количества элементов в Select List
. Мои списки выбора создаются в контроллере и сохраняются в коллекции ViewData. В принципе, если в списке выбора есть только один элемент, я планирую скрыть раскрывающееся меню в представлении и скорректировать его значение с помощью скрытого поля.MVC4 Просмотр решения по количеству элементов в списке выбора
Когда я обращаюсь к свойству «Items», Intellisense не предоставляет метод подсчета количества элементов списка. Как подсчитать элементы в списке выбора из представления Razor?
Index.cshtml
@model Mvc4.Models.PhoneRecord
...
<div class="editor-field">
@{
// I need logic here to count items in the select list.
// XXXXX is of course a compile error, there is no Intellisense
// option that provides a "count" method, what should I use?
if (((SelectList)ViewData["_CellPhoneCarrier"]).Items.XXXXX == 1))
{
@Html.Raw("note: value is hardcoded.")
@Html.HiddenFor(m => m.CellPhoneCarrier)
}
else
{
@Html.DropDownListFor(m => m.CellPhoneCarrier, (SelectList)ViewData["_CellPhoneCarrier"])
}
}
</div>
...
Почему бы не помещать информацию в строго типизированную модель - было бы намного проще в использовании? .. –
Вы * должны * иметь возможность использовать Count() (расширение linq), я считаю, intellisense или нет.С другой стороны, предложение Алексея еще лучше! –
Alexei, я использовал ViewData, потому что именно так показал учебник - мне это не нравится tbh. – laylarenee