Форма MVC не может опубликовать список объектов
поэтому у меня есть приложение MVC Asp.net, которое имеет проблемы. По сути, у меня есть представление, которое содержит форму, а ее содержимое связано со списком объектов. В этом цикле он загружает PartialView 'с элементами, которые зациклены на. Теперь все работает до подачи формы. Когда он передается, контроллеру отправляется пустой список объектов. Код ниже демонстрирует проблемы.
Родительский вид:
@model IEnumerable
@using (Html.BeginForm("ComparePlans", "Plans", FormMethod.Post, new { id = "compareForm" }))
{
@foreach (var planVM in Model)
{
@Html.Partial("_partialView", planVM)
}
}
_partialView:
@model PlanCompareViewModel
@Html.HiddenFor(p => p.PlanID)
@Html.HiddenFor(p => p.CurrentPlan)
@Html.CheckBoxFor(p => p.ShouldCompare)
И это классы для приведенного выше кода:
PlanViewModel:
public class PlansCompareViewModel
{
public int PlanID { get; set; }
public Plan CurrentPlan { get; set; }
public bool ShouldCompare { get; set; }
public PlansCompareViewModel(Plan plan)
{
ShouldCompare = false;
PlanID = plan.PlanId;
CurrentPlan = plan;
}
public PlansCompareViewModel()
{
// TODO: Complete member initialization
}
public static IEnumerable CreatePlansVM(IEnumerable plans)
{
return plans.Select(p => new PlansCompareViewModel(p)).AsEnumerable();
}
}
контроллер:
public class PlansController : MyBaseController
{
[HttpPost]
public ActionResult ComparePlans(IEnumerable model)
{
//the model passed into here is NULL
}
}
И проблема в действии контроллера. Насколько я знаю, он должен публиковать перечисляемый список PlanCompareViewModels, но он является нулевым. При проверке отправляемых почтовых данных он отправляет правильные параметры. И если бы я изменилсяIEnumerable» кFormCollection», он содержит правильные значения. Кто-нибудь может понять, почему связыватель не создает правильный объект? Я могу обойти это с помощью JavaScript, но это побеждает цель! Любая помощь будет принята с благодарностью!