Я работаю в ASP.Net, и у меня есть список моделей, которые я хочу отобразить на странице.Они содержат раскрывающийся список, и когда упомянутый раскрывающийся список обновляется, я должен взять это перечисление моделей представления, изменить наниматель внутри него и опубликовать его с изменениями.Однако, когда я делаю свое сообщение, вместо того, чтобы отправлять содержащиеся модели представления, оно отправляет пустое перечисление.
До сих пор я пытался переключить свой «foreach» в моем представлении на «для».Я также попытался изменить некоторые имена, чтобы увидеть, была ли проблема с подшивкой модели, но это не так.
Вот код, соответственно, вида, модели представления и контроллера.
Просмотр
@using (Html.BeginForm())
{
@Html.AntiForgeryToken();
for (int i = 0; i < Model.Count(); i++)
{
@Html.DropDownListFor(model => model.ElementAt(i).PickedNormId, Model.ElementAt(i).PickableNorms, UiText.Prosyn.N_A, htmlAttributes: new { @class = "form-control dropdown_search", @name="NormPicker"@*, @onchange = "this.form.submit();"*@ })
}
<div>
<input name="selectedNormList" type="submit">
</div>
}
ViewModel
public class NormPickerViewModel : ViewModel
{
public SelectList PickableNorms { get; set; }
public int PickedNormId { get; set; }
}
Контроллер
public virtual ActionResult Index()
{
List<NormPickerViewModel> viewModels = new List<NormPickerViewModel>();
viewModels.Add(new NormPickerViewModel()
{
PickableNorms = new SelectList(
_normRepository.GetAll().Where(x => x.Depth == 1).ToList(),
"Id",
"Description"
)
});
return View(viewModels);
}
[HttpPost]
public virtual ActionResult Index(IEnumerable<NormPickerViewModel> selectedNormList)
{
// selectedNormList's count is always zero.
}
Обычно я ожидаю найти выпадающие сообщения, которые я передал в«Получить» с их обновленными выбранными значениями, но я получаю пустое перечисление.