Изменить правила проверки для ValidationMessageFor - PullRequest
1 голос
/ 26 июня 2011

В моем представлении регистрации у меня есть:

<div>
    @Html.ValidationMessageFor(m => m.Password)
</div>

Если я использую пароль типа foobar100, проверка не пройдена, однако сообщение об ошибке не дает правильной причины, по которой оно не удалось.Т.е. The password provided is invalid. Please enter a valid password value. Это будет работать, только если я сделаю что-то вроде foob@r100.

Есть ли способ уменьшить строгость правил валидации?Или хотя бы изменить сообщение об ошибке проверки?

Обновление

Атрибуты проверки данных для объекта, который я проверяю:

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

, которыйничего не говорите о требовании символа @.

Ответы [ 3 ]

1 голос
/ 26 июня 2011

Вы можете добавлять сообщения к атрибутам DataAnnotations в свойствах, например:

[RegularExpression(@"/tags/[^\ ]+", ErrorMessage = "Url must start with /tags/ and must not contain spaces")]
public string Url { get; set; }

Они будут использоваться помощником ValidationMessageFor для вывода правильного сообщения.

1 голос
/ 26 июня 2011

Проверьте атрибуты проверки данных в свойстве Password любого объекта, который вы проверяете.

0 голосов
/ 30 июня 2011

Для уменьшения строгости проверки. Например. не нужно алфавитно-цифровых символов. Вам нужно изменить свойства MembershipProvider. Это можно сделать с помощью файла web.config согласно http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.minrequirednonalphanumericcharacters.aspx.

   <membership>
          <providers>
              <clear/>
              <add name="AspNetSqlMembershipProvider"
                type="System.Web.Security.SqlMembershipProvider"
                connectionStringName="LocalSqlServer"
                enablePasswordRetrieval="false"
                enablePasswordReset="true"
                requiresQuestionAndAnswer="false"
                requiresUniqueEmail="false"
                maxInvalidPasswordAttempts="5"
                minRequiredPasswordLength="6"
                minRequiredNonalphanumericCharacters="0"
                passwordAttemptWindow="10"
                applicationName="/"/>
          </providers>
      </membership>

Тогда вы сможете лучше контролировать уровень строгости с помощью ответа Дэнни Таппени.

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