21

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

(不工作)

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

(在职的)

[Required]
[StringLength(80)]
[DisplayName("Contact Name:")]
public string ContactName { get; set; }
4

3 回答 3

37

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

根据 Entity Framework 中的 Microsoft Official Website[MaxLength]属性,因为 Entity Framework 知道在您的情况下数据库中列的最大长度是多少(例如varchar(80)

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

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

正如您在其中一个评论中所说的那样,您没有使用实体框架来回复@jackncoke,因此[MaxLength(80)]将无法正常工作

但在第二种情况下[StringLength(80)]是有效的,因为它对实体框架没有任何依赖关系。

[StringLength(80)]如果您使用或不使用实体框架, SO将在这两种情况下工作

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

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

于 2013-02-28T17:57:24.667 回答
6

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

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

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

于 2013-01-31T15:21:42.270 回答
3

在 MVC4 MaxLength 中正常工作,我必须检查它

public class RegisterModel
{
    [Required]
    [Display(Name = "User name")]
    [MaxLength(5)]  //MaxLength worked properly.
    public string UserName { get; set; }

    [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; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

在此处输入图像描述

于 2013-07-18T09:58:02.833 回答