В других частях моего веб-сайта я использую вложенные списки и могу отображать и сохранять без проблем.mvc 4 complex list, возвращающий null
Однако я не могу понять, почему он не работает на этот раз.
ViewModel
public class ActivityEditViewModel
{
//Activity
public int ActivityID { get; set; }
//... more properties
public List<ActivityService> ActivityServices { get; set; }
public class ActivityService
{
public int ServiceID { get; set; }
[DisplayName("Outcome Comment")]
public string OutcomeComment { get; set; }
//... more properties
}
}
Просмотр (соответствующая часть)
@for (int i = 0; i < Model.ActivityServices.Count; i++)
{
@Html.HiddenFor(x => x.ActivityServices[i].ServiceID)
@Html.LabelFor(x => Model.ActivityServices[i].OutcomeComment)
@Html.TextBoxFor(x => Model.ActivityServices[i].OutcomeComment)
}
Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(ViewModels.ActivityEditViewModel vm)
{
//vm.ActivityServices <== is always null
Вопрос
Почему vm.ActivityServices
null null?
Беглым взглядом кажется мне верным. Лучший способ отладки MVC-привязки - посмотреть на фактические значения форм, которые представлены в HTTP-запросе, на странице, где он работает, и на странице, где нет. Обычно несоответствие легко обнаружить. – Zruty
Собственно, посмотрите на свой код вида: он должен быть 'x => x.Something' все время – Zruty
@ Zruty Хорошее пятнистость, однако изменение кода не имеет значения. Все еще null. Любые другие идеи? Кроме того, как я могу просмотреть «фактические значения формы»? – PostureOfLearning