Можете ли вы посмотреть?
Самый простой способ передать коллекцию из представления в контроллер в ASP.NET MVC через POST-запрос - использовать модель представления (ViewModel) с свойством списка или массива, которое будет содержать вашу коллекцию данных. Вот пример использования модели представления для передачи коллекции данных из представления в контроллер. Первоначально необходимо создать модель, которую вы собираетесь передать: ``` C# public class SomeViewModel { public IEnumerable<SomeModel> SomeModels { get; set; } } ``` В View вам нужно будет сформировать форму для отправки данных: ``` HTML @model SomeViewModel <form method="post"> @for (int i = 0; i < Model.SomeModels.Count(); i++) { <input type="hidden" asp-for="@Model.SomeModels[i].Id" /> <input type="text" asp-for="@Model.SomeModels[i].Name" /> <input type="text" asp-for="@Model.SomeModels[i].Value" /> // и т. д. в зависимости от того, какие поля у вас есть } <input type="submit" value="Send" /> </form> ``` То есть вам необходимо указать для каждого элемента коллекции индекс i. В контроллере вы можете принять эту модель следующим образом: ``` C# [HttpPost] public IActionResult SomeAction(SomeViewModel model) { foreach (var item in model.SomeModels) { // Здесь вы можете работать с данными каждого элемента var id = item.Id; var name = item.Name; var value = item.Value; // и т. д. } return RedirectToAction("Index"); } ``` Главное помнить, что индексы элементов в форме должны идти без пропусков и начинаться с нуля, иначе при передаче коллекции будут переданы не все её элементы.
Переформулировал Модель так, что теперь передается только Модель, а не коллекция. Проблема в представлении не устранена, но решение было найдено в другой похожей задаче. В добавок к этому, обнаружил, что в системе аутентификации Identity нельзя добавлять сразу все роли - приходится делать это поочередно. Кстати, очень люблю задавать вопросы и сам на них отвечать - это одна из лучших функций интернета.