Asp.net mvc dataannotation MaxLength验证不起作用

Gar*_*rry 19 asp.net asp.net-mvc-4

我在我的模型中使用asp.net mvc4我使用Maxlength属性但它不适用于字符串.只有Stringlength工作任何人都有同样的问题?如果有问题如何解决?它不适用于验证我的字段这是我的代码

(不工作)

[Required]
[MaxLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
Run Code Online (Sandbox Code Playgroud)

(工作)

[Required]
[StringLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
Run Code Online (Sandbox Code Playgroud)

Pam*_*mma 30

两个属性都在System.ComponentModel.DataAnnotations命名空间中

根据[MaxLength]Entity Framework中的Microsoft官方网站属性,因为实体框架知道在您的情况下数据库中列的最大长度(如varchar(80))

指定属性中允许的数组或字符串数​​据的最大长度.

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.maxlengthattribute.aspx

正如你们其中一个评论你说你没有使用实体框架回复@jackncoke所以[MaxLength(80)]不会工作

但在第二种情况下[StringLength(80)]工作是因为它对Entity Framework没有任何依赖性.

[StringLength(80)]如果您正在使用Entity Framework或没有它,那么SO 将适用于这两种情况

指定数据字段中允许的最小和最大字符长度.

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.aspx


jac*_*oke 6

[MaxLength(80)]改变,[StringLength(80)]但看起来你打败了我!

你不是唯一有这个问题的人

MaxLength属性不生成客户端验证属性