Вы можете попробовать что-то вроде:
@model Person
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(x => x.Name)
@Html.EditorFor(x => x.Name)
</div>
@Html.EditorFor(x => x.Book)
<button type="submit">Edit</button>
}
, а затем вы определите шаблон редактора для типа Book
(~/Views/Shared/EditorTemplates/Book.cshtml
), который будет отображаться для каждого элемента Book
набор свойств (который, кстати, вы бы назвали Books
, чтобы следовать стандартным соглашениям) в вашей модели представления:
@model Book
<div>
@Html.LabelFor(x => x.NameBook)
@Html.EditorFor(x => x.NameBook)
</div>
Что касается действий вашего контроллера, это довольно стандартные вещи:
public ActionResult Edit(int id)
{
var person = _personRepository.Get(id);
return View(model);
}
[HttpPost]
public ActionResult Edit(Person person)
{
if (!ModelState.IsValid)
{
return View(person);
}
_personRepository.Update(person);
return RedirectToAction("Success");
}