У меня есть основное приложение asp.net и я пытаюсь добавить простой флажок без какой-либо проверки. Флажок привязан к логическому свойству модели. Ниже приведен кодasp-for tag добавляет обязательную проверку поля на флажке в ядре asp.net
Модель
public class MyModel
{
public bool IsEmployee { get; set; }
}
cshtml
<form>
<div>
<label asp-for="IsEmployee">Is Employee</label>
<input type="checkbox" asp-for="IsEmployee"/>
</div>
<button id="btnSave" class="btn btn-primary" type="button">Save</button>
</form>
<script src="~/js/test.js"></script>
Javascript
$(function() {
var kendoValidator = $('form').kendoValidator().data("kendoValidator");
$('#btnSave').click(function() {
if (kendoValidator.validate()) {
alert('true');
}
else {
alert('false');
}
})
})
Я используя asp-for
тег helper на input
элемент. Обратите внимание, что свойство IsEmployee
НЕ имеет атрибута [Обязательный]. Но из-за asp-for
тег хелпер обработанный html имеет data-val-required
и data-val
атрибуты на input
элемент. Он также добавляет еще один hidddeninput
элемент с таким же именем. Ниже представлено html. (также отметить, что я думаю, что это происходит только тогда, когда тип входа является флажок. Для текстовых полей его работает отлично)
<form novalidate="novalidate" data-role="validator">
<div>
<label for="IsEmployee">Is Employee</label>
<input name="IsEmployee" id="IsEmployee" type="checkbox" value="true" data-val-required="The IsEmployee field is required." data-val="true">
</div>
<button class="btn btn-primary" id="btnSave" type="button">Save</button>
<input name="IsEmployee" type="hidden" value="false">
</form>
Я использую kendovalidator и который добавляет data-role="validator"
на элементе формы.
Вопросы
Есть 2 проблемы здесь
1> Как только я нажимаю на проверки появляется сообщение об ошибке, как окно The IsEmployee field is required.
2> kendoValidator.validate() метод всегда возвращает ложь независимо от того, установлен флажок или нет.
Демо здесь JSFiddle
Update 2
Мы не можем связать обнуляемого BOOL с флажком. Я использую ядро asp.net. Я не уверен, что эквивалентный синтаксис в ядре asp.net для предложения here, который действителен для классического asp.net