Не передается значение с viewmodel на action контроллера в asp.net core
Не удается передать список элементов Allrooms в action контроллера при нажатии на кнопку Обновить.
[HttpPost]
public IActionResult EditSelectedRooms(EditSelectedRoomsViewModel model)
{
foreach (var id in model.Allrooms)
{
var room = dBContext.Rooms.Find(id);
room.ClassName = model.ClassName;
dBContext.SaveChanges();
}
return RedirectToAction("Index");
}
@model Hotel.ViewModel.EditSelectedRoomsViewModel
<form asp-action="EditSelectedRooms" asp-controller="Home" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="ClassName" class="control-label">Name</label>
<input type="text" asp-for="ClassName" class="form-control" />
</div>
<div class="form-group">
<input type="hidden" asp-for="Allrooms" value="@Model.Allrooms" />
</div>
<div class="form-group">
<input type="submit" value="Обновить" class="btn btn-outline-secondary" />
</div>
</form>
Ответы (1 шт):
Автор решения: ils2
→ Ссылка
Нужно было использовать for и заменить input
@for (int i = 0; i < Model.Allrooms.Count(); i++)
{
<input type="hidden" asp-for="Allrooms[i]" value="@Model.Allrooms[i]" />
}

