Следующий аргумент для вашего BeginForm
помощника не имеет смысла:
new { AttendenceModel = Model }
вы не можете передавать сложные объекты, подобные этому.Только простые скалярные значения.Вы можете использовать скрытые поля в форме для всех свойств, которые нельзя редактировать, и видимые поля ввода для других.Или еще лучше: используйте модель представления, которая будет содержать только свойства, которые можно редактировать в форме, и дополнительный идентификатор, который позволит вам извлечь исходную модель из базы данных, а при использовании метода TryUpdateModel
обновите только те свойства, которые быличасть запроса POST:
[HttpPost]
public ActionResult Review(int id)
{
var model = Repository.GetModel(id);
if (TryUpdateModel(model))
{
return View(model);
}
...
}
, насколько это касается представления, оно станет:
@model AttendenceViewModel
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("Review", "SomeControllerName"))
{
@Html.HiddenForm(x => x.Id)
@Html.DisplayFor(m => m.ClassName)
@Html.EditorFor(m => m.Attendences)
<button type="submit">Next</button>
}