Поиск по сайту Я вижу много вариантов этого вопроса, но ни один из них не относится к этому конкретному случаю.Использование массива для заполнения нескольких полей MVC/C#
Я пытаюсь заполнить несколько DropDownLists значением в index i
из массива, который содержит строки в моей модели.
Мой шаблон похож (упрощенно) к следующему:
@model foo
@for (int i = 0; i < Model.ArrayName.Length; i++)
{
@Html.LabelFor(m => m.ArrayName[i], "Index " + i, new {})
@Html.DropDownListFor(m => m.ArrayName[i], Model.ListOfPotentialValues, new {})
@Html.ValidationMessageFor(m => m.ArrayName[i])
}
Чтобы быть более ясным, ArrayName
это массив строк (string[]
), ListOfPotentialValues
имеет тип IEnumerable<SelectListItem>
Код для модель может быть представлена ниже:
public IEnumerable<SelectListItem> ListOfPotentialValues
{
return SelectList(/* A list of Strings*/)
}
public string[] ArrayName { get; set; }
//Constructor
public foo()
{
ArrayName = new string[] {"Foo", "Foo", "Baz","Qux"};
}
View отправляет следующие HTML-выходные данные для fir й выпадающий (что соответствует для всех из них)
<div>
<label for="ArrayName_0_">Index 0</label>
<select id="ArrayName_0_" name="ArrayName[0]">
<option>Foo</option>
<option>Bar</option>
<option>Baz</option>
<option>Qux</option>
</select>
<span class="field-validation-valid" data-valmsg-for="ArrayName[0]" data-valmsg-replace="true"></span>
</div>
Исходя из этого, вы можете или не извлекли, что ArrayName
, конечно, имя массива, содержащего значения Я хочу отображаться и ListOfPotentialValues
является SelectList
значений, которые могут быть выбраны. Список значений отображается, но не устанавливает его значение так, как если бы я не использовал массив.
Пока значение для раскрывающегося списка не заполняется, я могу отобразить его значение, если я вызываю @Model.ArrayName[i]
в моем шаблоне MVC.
Подробнее: Если ListOfPotentialValues
содержит значение Foo, Bar, Baz, Qux
И ArrayName
содержит значение Foo, Foo, Qux, Baz
Я бы ожидать, что выпадающие начать со значениями Foo, Foo, QUX, БАЗ (соответственно) и при этом иметь возможность для выбора Foo, Bar, Baz и Qux
Есть ли что-то простое, что мне не хватает?
Каков тип 'ArrayName'? 'ListOfPotentialValues'? Можете ли вы предоставить образец HTML, который выводится? – StriplingWarrior
Я считаю, что это редактирование удовлетворяет то, что вы просите – cosban