Может кто-нибудь объяснить, пожалуйста, следующий код

1

Может кто-то объяснить, пожалуйста, следующий ниже код, особенно new[]

  @Html.DropDownListFor(x => x.WillAttend,new[] { 
          new SelectListItem() { Text = "Yes, I'll be there", Value = bool.TrueString},
          new SelectListItem() { Text = "No, I can't come", Value = bool.FalseString}}, "Choose an option")

Создает ли new[] новый список выбора?

Теги:
asp.net-mvc-5
asp.net-mvc-4

5 ответов

1
Лучший ответ

new[] не является анонимным типом, это неявно типизированный массив типа SelectListItem[]. Тип массива (SelectListItem) выводится при добавлении элементов типа SelectListItem с использованием инициализатора массива.

Вы используете эту перегрузку DropDownListFor. Поскольку SelectListItem[] происходит от IEnumerable<SelectListItem, это работает. Вы также могли бы использовать List например: new List<SelectListItem> { new SelectListItem {... }, new SelectListItem {... } }.

0

Создает ли новый [] новый список выбора?

new[] создает новый объект Array. Учитывая, что вторым параметром DropDownListFor является IEnumerable<SelectListItem>, массив плавно переходит к требуемому типу.

0

@Html.DropDownListFor() выглядит как оператор Razor для механизма просмотра Razor. Этот оператор будет генерировать список выбора HTML. Аргумент этой функции (материал между ()) составляет содержимое списка, который в этом случае генерируется из оператора new[]{...} который создает новый массив, заполненный элементами в {} в этом случае SelectListItem s.

Заявление в целом должно генерировать нечто похожее:

<select>
      <option value="" selected="selected" disabled="disabled">Choose an option</option>
      <option value="true">Yes, I'll be there</option>
      <option value="false">No, I can't come</option>
</select>
0

Код создает новый массив типа SelectList и добавляет к нему два новых элемента SelectListItem. Это ваш новый раскрывающийся список.

0

Правильно, новый [] в массиве, инициализатор списка. Таким образом, в этом случае вы создаете массив или список, я не знаю тип, который выпадающий список принимает, и он имеет 2 элемента типа SelectListItem.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню