Я пытаюсь реализовать код, упомянутый в this post. Другими словами, я пытаюсь выполнить ненавязчивую проверку на условиях и условиях. Если пользователь не выбрал этот флажок, вход должен быть отмечен как недействительный.MVC ненавязчивая проверка на флажке не работает
Это сервер код на стороне Validator, я добавил:
/// <summary>
/// Validation attribute that demands that a boolean value must be true.
/// </summary>
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class MustBeTrueAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return value != null && value is bool && (bool)value;
}
}
Это модель
[MustBeTrue(ErrorMessage = "You must accept the terms and conditions")]
[DisplayName("Accept terms and conditions")]
public bool AcceptsTerms { get; set; }
Это мое мнение:
@Html.EditorFor(x => x.AcceptTermsAndConditions)
@Html.LabelFor(x => x.AcceptTermsAndConditions)
@Html.ValidationMessageFor(x => x.AcceptTermsAndConditions)
и это jQuery, который я использовал для присоединения клиентской стороны валидатора:
$.validator.unobtrusive.adapters.addBool("mustbetrue", "required");
Сценарий клиентской стороны, похоже, не работает. Всякий раз, когда я нажимаю кнопку «Отправить», проверка на других полях отлично подходит, но проверка условий Условий & не срабатывает. Вот как выглядит код Firebug после того, как я нажал кнопку отправки.
<input type="checkbox" value="true" name="AcceptTermsAndConditions" id="AcceptTermsAndConditions" data-val-required="The I confirm that I am authorised to join this website and I accept the terms and conditions field is required." data-val="true" class="check-box">
<input type="hidden" value="false" name="AcceptTermsAndConditions">
<label for="AcceptTermsAndConditions">I confirm that I am authorised to join this website and I accept the terms and conditions</label>
<span data-valmsg-replace="true" data-valmsg-for="AcceptTermsAndConditions" class="field-validation-valid"></span>
Любые идеи? Я пропустил шаг? Это сводит меня с ума!
Заранее спасибо S
не могли бы вы просто использовать '['] из милиции атрибут вместо создания собственного 'MustBeTrueAttribute'? – Fred