Ненавязчивая проверка на стороне клиента для поля bool, не работающего в ASP.NET Core MVC - PullRequest
0 голосов
/ 08 сентября 2018

Я обнаружил очень интересную проблему в ASP.NET Core. Я использую поле bool для флажка. Я хочу заставить пользователя установить флажок для формы, которая будет отправлена.

Это поле bool в моем классе Model:

[Range(typeof(bool), "true", "true", ErrorMessage = "You must accept the Terms")]
public bool TermsAccepted { get; set; }

Обратите внимание, что я применил атрибут проверки [Range]. И он работает отлично для проверки на стороне сервера .

Мой код метода действия довольно прост:

[HttpPost]
public IActionResult Index(JobApplication jobApplication)
{
    if (ModelState.IsValid)
        return View("Accepted", jobApplication);
    else
        return View();
}

Но проблема возникает, когда я применяю проверку на стороне клиента

На мой взгляд, я применяю 3 сценария:

@section scripts {
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js">
</script>
}

Проверка на стороне клиента работает совершенно противоположно, при установке флажка выдается сообщение об ошибке. Почему это происходит наоборот?

HTML-код, созданный флажком:

<input type="checkbox" class="input-validation-error" data-val="true" data-val-range="You must accept the Terms" data-val-range-max="True" data-val-range-min="True" data-val-required="The TermsAccepted field is required." id="TermsAccepted" name="TermsAccepted" value="true" aria-describedby="TermsAccepted-error">

Пожалуйста, помогите?

...