Подскажите пожалуйста, почему при отправке формы с 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-теги?