У меня есть базовый формат Create/Edit/Delete/Index, созданный MVC с моим классом (ClassA). Класс содержит список объектов (ClassB).MVC Изменить список внутри объекта
Когда я вызываю представление для редактирования объекта, я могу редактировать все члены ClassA (текстовые поля и т. Д.), Но как я могу отредактировать список объектов, а затем вернуть их обратно к сообщению?
Когда я пытаюсь создать и перебрать объекты и добавить их в форму, он не возвращается с объектом (ClassA), а список объектов пуст.
Пожалуйста, помогите. Какова наилучшая практика для этого?
Ниже приведен пример класса
public ActionResult Edit(int id)
{
ClassA objA = db.ClassAs.Single(a => a.id == id);
objA.myListOfBs.Add(new ClassB());
return View(objA);
}
[HttpPost]
public ActionResult Create(ObjectA obj)
{
obj.myListOfBs <--- this is empty! :(
if (ModelState.IsValid)
{
}
return View(obj);
}
модели:
class ClassA {
int id;
List<ClassB> myListOfBs;
}
class ClassB {
int id;
string name;
}
Вот мой Посмотреть
@model MyProject.Models.ClassA
@{
ViewBag.Title = "ClassA Object";
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Objects</legend>
@Html.EditorFor(model => model.myListOfBs)
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
Не могли бы вы высказать свои классы моделей? – Oliver
http://stackoverflow.com/questions/15049463/mvc4-adding-deleting-from-nested-collections-with-jquery/15049977#15049977 –
Ваша проблема почти наверняка на ваш взгляд. Не могли бы вы разместить его, пожалуйста? Я предполагаю, что вы используете цикл foreach, чтобы перебирать список, и не соблюдайте требования к именам для вложений в mvc-модели. –