DropDownListFor не выбирает значение если в для цикла

По моему мнению,

<%= Html.DropDownListFor( x => x.Countries[ i ], Model.CountryList )%>

в моем контроллере

public int[ ] Countries { get; set; }

public List<SelectListItem> CountryList { get; set; }

Когда формы отправляются нет никакой проблемы, выпадающее заполняется и значения, пользовательские выборы отправляются. Но когда я пытаюсь загрузить форму уже присвоенными значениями в Страны [], это не становится выбранным.

24
задан Craig McKeachie 30 August 2012 в 18:34
поделиться

1 ответ

Поле выбора отправляет одно значение, поэтому свойство Country не должно быть массивом. Также в вашем сообщении неясно, где находится переменная i , которую вы используете в своем лямбда-выражении, и эта x.CountryList , используемый в помощнике, не будет компилироваться, поскольку x не определен.

Модель:

public class MyModel
{
    public int SelectedCountry { get; set; }
    public List<SelectListItem> CountryList { get; set; }
}

Просмотр:

<%= Html.DropDownListFor(x => x.SelectedCountry, Model.CountryList) %>

ОБНОВЛЕНИЕ:

Согласно комментарию кажется, что есть несколько раскрывающихся списков. Я подозреваю, что проблема может быть связана с переменной i , используемой в качестве индекса в цикле for .

Вместо этого вы можете попробовать следующее:

Модель:

public class MyModel
{
    public int[] Countries { get; set; }
    public List<SelectListItem> CountryList { get; set; }
}

Вид:

<% foreach (var country in Model.Countries) { %>
    <%= Html.DropDownListFor(x => country, Model.CountryList) %>
<% } %>
-1
ответ дан 28 November 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: