У меня есть 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)
{
Затем всю необходимую информацию можно получить из базы данных, чтобысоздайте новую и правильную запись.
Однако мне нужна проверка для суммы выбранных курсов, которую легко можно выполнить в одном контроллере:
Как видите, список выбранных курсов всегда пуст, даже если они правильно передаются вышеупомянутому методу 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 сам, это также не имеет никакого эффекта.
Заранее спасибо!