Подскажите пожалуйста, почему при отправке формы с View в контроллер все данные модели пересоздаются заново в Asp.Net Core MVC?

Есть таблица с пользователями, где выводятся список переданный из контроллера.

@using Microsoft.AspNetCore.Identity
@using WebApplication4.Areas.Identity.Data
@model List<ApplicationUser>


@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

@{
    ViewData["Title"] = "Home Page";
}

@using(Html.BeginForm("Delete", "Home", FormMethod.Post))
{
        <table class="table table-hover" id="table">
    <tr>
        <th scope="col">ID</th>
        <th scope="col">Имя пользователя</th>
        <th scope="col">Email</th>
        <th scope="col">Дата регистрации</th>
        <th scope="col">Дата последнего входа</th>
        <th scope="col">В сети</th>
        <th scope="col">Статус блока</th>
    </tr>
            @for (var i = 0; i < Model.Count; i++)
            {
                <tr class="table-active">
                    <td>@Html.DisplayFor(m => m[i].Id)</td>
                    <td>@Html.DisplayFor(m => m[i].Name)</td>
                    <td>@Html.DisplayFor(m => m[i].Email)</td>
                    <td>@Html.DisplayFor(m => m[i].CreateDateTime)</td>
                    <td>@Html.DisplayFor(m => m[i].LastLoginDateTime)</td>
                    <td>@Html.DisplayFor(m => m[i].IsOnline)</td>
                    <td>@Html.EditorFor(m => m[i].IsBlocked)</td>
                </tr>
            }
    </table>
    <div>
        <input type="submit" name="block" />
    </div>
}

Передача данных во View происходит в таком виде.

    public IActionResult Index()
    {
        var users = dbContext.Users.ToList();
        return View(users);
    }

Дальше, при нажатии на кнопку отправить данные отправляются в контроллер, для дальнейшего удаления отмеченных юзеров

    [HttpPost]
    public IActionResult Delete(List<ApplicationUser> users)
    {
        var deletedUsers = new List<ApplicationUser>();
        foreach (var user in users)
            if (user.IsBlocked) deletedUsers.Add(user);
        dbContext.Users.RemoveRange(deletedUsers);
        dbContext.SaveChanges();
        return RedirectToAction("Index");
    }

Проблема в том, что список users не соответствует тому списку, который передается во View, т.е поля с Name, Email равны null (По сути происходит пересоздание всех юзеров). Подскажите в чем проблема, может неправильно юзаю Html-теги?


Ответы (0 шт):