在我的注册视图中,我有:
<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; }
没有提及要求@符号。
答案 0 :(得分:1)
检查您正在检查的任何对象的Password属性上的数据验证属性。
答案 1 :(得分:1)
您可以在属性上向DataAnnotations属性添加消息,如下所示:
[RegularExpression(@"/tags/[^\ ]+", ErrorMessage = "Url must start with /tags/ and must not contain spaces")]
public string Url { get; set; }
ValidationMessageFor
助手将使用这些来输出正确的消息。
答案 2 :(得分:0)
降低验证严格性。例如。不需要字母数字字符。您需要更改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>
然后,您可以通过Danny Tuppeny的答案更好地控制严格程度。