Почему объект из полученый из View отличается от объекта, переданного туда?
Есть приложение ASP.NET Core MVC. Есть форма для редактирования группы.
Код из контроллера:
public IActionResult EditGroup(int? id)
{
if (id != null)
{
var group = _unitOfWork.Groups.Get((int)id);
if (group != null)
return View(group);
}
return NotFound();
}
[HttpPost]
public IActionResult EditGroupPost(Group group)
{
_unitOfWork.Groups.Update(group);
_unitOfWork.Save();
return RedirectToAction("Index");
}
Код из View:
@model University.Core.Models.Group
@{
ViewData["Title"] = "EditGroup";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Edit Group</h1>
<form asp-action="EditGroupPost" asp-controller="home" asp-route-id="@Model.Id">
<div class="form-group">
<label asp-for="Name" class="control-label">Name</label>
<input type="text" asp-for="Name" class="form-control" />
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</form>
Класс Group:
public class Group
{
public int Id { get; set; }
public int CourseId { get; set; }
public string Name { get; set; }
}
Во вью приходит Group со значением поля CourseId 1, из вью уходит со значением 0

В чем может причина?
Ответы (1 шт):
Автор решения: serjou
→ Ссылка
Объект, который пришел во вью - это не тот же объект, который из нее выходит. Нужно было добавить значение CouseId во вью:
<form asp-action="EditGroupPost" asp-controller="home" asp-route-id="@Model.Id" asp-route-courseid="@Model.CourseId">
<div class="form-group">
<label asp-for="Name" class="control-label">Name</label>
<input type="text" asp-for="Name" class="form-control" />
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</form>