Вы можете написать собственный атрибут проверки, который уже был упомянут.Вам нужно будет написать собственный javascript, чтобы включить ненавязчивую функцию проверки, чтобы поднять его, если вы выполняете проверку на стороне клиента.например, если вы используете jQuery:
// extend jquery unobtrusive validation
(function ($) {
// add the validator for the boolean attribute
$.validator.addMethod(
"booleanrequired",
function (value, element, params) {
// value: the value entered into the input
// element: the element being validated
// params: the parameters specified in the unobtrusive adapter
// do your validation here an return true or false
});
// you then need to hook the custom validation attribute into the MS unobtrusive validators
$.validator.unobtrusive.adapters.add(
"booleanrequired", // adapter name
["booleanrequired"], // the names for the properties on the object that will be passed to the validator method
function(options) {
// set the properties for the validator method
options.rules["booleanRequired"] = options.params;
// set the message to output if validation fails
options.messages["booleanRequired] = options.message;
});
} (jQuery));
Другой способ (который немного хакерский, и мне это не нравится) - это иметь свойство в вашей модели, которое всегда установлено в true, тогдаиспользуйте CompareAttribute , чтобы сравнить значение вашего атрибута * AgreementTerms *.Просто да, но мне это не нравится:)