Как расширить готовую проверку ASP.NET MVC2 для проверки кредитной карты / электронных писем? - PullRequest
2 голосов
/ 08 декабря 2009

Я искал файл MicrosoftMvcJQueryValidation.js, который является слоем между вашей страницей и jquery.validate объектом в ASP.NET MVC 2 Beta.

Это разрешит любой тип правила проверки, поддерживаемого jquery.validate и имеет дополнительную специальную обработку для выражений regularexpress, строк, диапазонов и обязательных полей. Если это общий / неизвестный тип правила, он будет просто проходить через такие параметры:

  default:
     __MVC_ApplyValidator_Unknown(rulesObj,
         thisRule.ValidationType, thisRule.ValidationParameters);
    break; 

Однако - я не могу понять, как внедрить дополнительные правила в JSON, который генерируется платформой, такой как «электронная почта». Обычно правила просто исходят из таких атрибутов, как [Required].

Я знаю, что существует множество точек расширяемости для замены всего провайдера метаданных проверки, но я ищу простой способ.

Как я могу использовать - например, валидаторы электронной почты или кредитной карты в сочетании с простой моделью, подобной этой:

открытый класс LoginDetails { public bool Editable {get; задавать; }

    [Required(ErrorMessage="Please enter your email")]
    public string Username { get; set; }

    [Required(ErrorMessage="Please enter your password")]
    public string Password { get; set; }
}

Ответы [ 2 ]

2 голосов
/ 06 января 2010

Использовать DataAnnotationsModelValidator

Как это .

Использование включает в себя

/ Scripts / jquery-1.3.2.js

/ Scripts / jquery.validate.js

/ Scripts / MicrosoftMvcJQueryValidation.js

Использовать функцию проверки

    <script type="text/javascript">
    $.validator.addMethod("price", function(value, element, paras) {
        if (value.length == 0) {
            return true;
        }
        if (value > paras.minValue) {
            var cents = value - Math.floor(value);
            if (cents >= 0.99 && cents < 0.995) {
                return true;
            }
        }
        return false;
    });
</script>
2 голосов
/ 08 декабря 2009

Для различных типов данных вы можете оставить сообщение «Обязательное», но также добавить различные атрибуты под ними. Для электронной почты и кредитных автомобилей регулярное выражение , как это, вероятно, будет работать лучше всего.

[Required(ErrorMessage="Please enter your email")]
[RegularExpression(@"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b", 
  ErrorMessage="Please enter a valid email address.")]
public string Email { get; set; }

[Required(ErrorMessage="Please enter your password")]
[RegularExpression(@"^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$.", 
  ErrorMessage="Please enter a valid Credit Card.")]
public string CreditCard { get; set; }

Проверьте эту , эту и эту ссылку для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...