У меня есть массив, который я хочу связать с выпадающим списком. Вот код:ASP.NET MVC Binding массив для DropDownFor
@for (int i = 1; i <= 5; i++)
{
@for (int j = 1; j <= 7; j++)
{
@Html.DropDownListFor(m => @Model.Periods, new SelectList(@Model.Items, "Id", "Title", @Model.ScheduleList[i, j]))
}
}
@ Model.Periods обычный пустой массив целых чисел. @ Model.ScheduleList - это двухмерный целочисленный массив и содержит значения параметра, которые должны быть выбраны при привязке. Если я заменяю:
@Model.Periods
с:
@Model.Periods[i*10 + j]
Выбранные значения показываются, но генерируемый выбрать вход имеет название, как, например, периоды [34], а не только периоды, и я получаю null модель модель на обратной стороне. Итак, мой вопрос: как связать массив oridnary с выпадающим списком и передать ему выбранное значение другому массиву?
Трудно понять, к какому результату вы пытаетесь достичь, вы хотите иметь 5 * 7 = 35 выпадающих списков? –
Да, я хочу 35 выпадающих списков, которые должны быть сохранены в базе данных, а затем пользователь может их редактировать. В @ Model.ScheduleList У меня есть значения из базы данных, но я не могу изменить сгенерированный вход для ввода, чтобы показать, что введенный по умолчанию первый элемент по умолчанию – snaksa
'@ Model.Periods [i * 10 + j]' is 'почти' правильно - чтобы отправить обратно эти данные, вы должны отправить их обратно со всеми значениями от периодов [0] до периодов [34], если какой-либо из периодов [X] (где X от 0 до 34 включительно) будет отсутствовать, вы выиграли Получать правильные данные.Также индекс массива должен строго начинаться с 0. Поэтому, вероятно, '@ Model.Periods [(i-1) * 10 + (j-1)]' должно быть хорошо. –