Удаленная проверка для IEnumerable <int>не передает никакого значения методу проверки - PullRequest
0 голосов
/ 23 октября 2019

У меня есть ViewModel в приложении ASP .NET Core, которое требует проверки при публикации.

public class CreateScheduleViewModel : MealBaseEntity
{
    public int ScheduleId { get; set; }
    [Required]
    public string WeekNumber { get; set; }
    public string CookName { get; set; }
    public string CookNameUpdated { get; set; }
    public int Year { get; set; }
    [Remote(action: "VerifyCourses", controller: "Schedules", AdditionalFields = nameof(SelectedCourses), HttpMethod = "Post")]
    public IEnumerable<int> SelectedCourses { get; set; }

}

В представлении, этот код может быть найден:

<div class="form-group">
    <label asp-for="SelectedCourses" class="control-label">Kies hier de voorgerechten</label>
    <select multiple="multiple" class="multi-select form-control" id="multiselect1" asp-for="SelectedCourses" asp-items="(List<SelectListItem>)ViewBag.Starters">
    </select>
    <script>
        $('#multiselect1').multiSelect();
    </script>
</div>

Это правильноотображает всю необходимую информацию в множественном списке, значение CourseId и значение Name. После отправки формы все необходимые данные правильно передаются методу Create в контроллере в виде CreateScheduleViewModel:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(CreateScheduleViewModel ScheduleModel)
{
    if (ModelState.IsValid)
    {

Затем всю необходимую информацию можно получить из базы данных, чтобысоздайте новую и правильную запись.

Однако мне нужна проверка для суммы выбранных курсов, которую легко можно выполнить в одном контроллере: enter image description here

Как видите, список выбранных курсов всегда пуст, даже если они правильно передаются вышеупомянутому методу Create () (в ViewModel).

Я правильно установил и связалвсе необходимые сценарии проверки JQuery:

<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation/dist/additional-methods.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>

В журнале показано это POST при возникновении события:

Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request starting HTTP/1.1 POST http://localhost:10004/Schedules/VerifyCourses application/x-www-form-urlencoded; charset=UTF-8 33
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Route matched with {action = "VerifyCourses", controller = "Schedules", page = "", area = ""}.

Можно ли даже передать список целых чисел в такой метод с помощью[Удаленный] атрибут? Я попытался передать ViewModel сам, это также не имеет никакого эффекта.

Заранее спасибо!

...