Проверка на стороне клиента ASP.NET с dataannotations - минимальная длина javascript равна нулю - PullRequest
1 голос
/ 27 апреля 2010

Я делаю проверку на стороне клиента над проектом, над которым я работаю. Все работает, кроме свойства минимальной длины атрибута StringLength (работает при отправке и проверке на стороне сервера):

[StringLength(50, MinimumLength = 6)]

JavaScript, сгенерированный Html.EnableClientValication();, выглядит следующим образом:

// snip 
{"FieldName":"User.Password","ReplaceValidationMessageContents":true,"ValidationMessageId":"User_Password_validationMessage","ValidationRules":[{"ErrorMessage":"The field Password must be a string with a minimum length of 6 and a maximum length of 50.","ValidationParameters":{"minimumLength":0,"maximumLength":50},"ValidationType":"stringLength"}]}],"FormId":"form0","ReplaceValidationSummary":false})

Важная вещь здесь:

{"minimumLength":0,"maximumLength":50}

Создает JavaScript с неправильным минимальным свойством. У вас, ребята, есть подсказка? Это возможная ошибка?

1 Ответ

2 голосов
/ 27 апреля 2010

это код от отражателя

    public class StringLengthAttributeAdapter : DataAnnotationsModelValidator<StringLengthAttribute>
    {
        // Methods
        public StringLengthAttributeAdapter(ModelMetadata metadata, ControllerContext context, StringLengthAttribute attribute) : base(metadata, context, attribute)
        {
        }

        public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
        {
           return new ModelClientValidationStringLengthRule[] 
{ new ModelClientValidationStringLengthRule(base.ErrorMessage, 
-> 0 <-, base.Attribute.MaximumLength) };
        }
    }

да, это совсем не правильно.

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