Почему объект из полученый из 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>
→ Ссылка