我需要一个应该正好是 7 个字符的文本框,为此我已经写了
Html.TextboxFor(x=>x.Number, new {maxLength = "7"};
这种情况下我只需要 7 个字符,但是如果我想少于 7 个字符,它会占用吗?有没有像maxlength
只需要 7 个字符的属性。
问候,迈克尔·维拉亚杜
我需要一个应该正好是 7 个字符的文本框,为此我已经写了
Html.TextboxFor(x=>x.Number, new {maxLength = "7"};
这种情况下我只需要 7 个字符,但是如果我想少于 7 个字符,它会占用吗?有没有像maxlength
只需要 7 个字符的属性。
问候,迈克尔·维拉亚杜
对于它的价值,这些答案都不是很清楚。您要做的基本上是设置最小和最大长度属性。基本上有几种方法可以使用数据注释来完成此任务。
最简单的方法:
[MinLength(7)]
[MaxLength(7)]
使用 StringLengthAttribute... StringLength 有两个重载方法。两者都有 int 参数@maximumLength
,其中一个重载包括 NamedParameters。所以对于 maxlength 你不会使用命名参数,但对于 minlength 你会:
[StringLength(7, MinimumLength=7)]
如果您想真正感到困惑,也可以这样做:
[MinLength(7)]
[StringLength(7)]
最小长度的文本框上没有 Html 属性。您可以使用数据注释来强制该字段的最大和最小文本长度...
这是使用数据注释的一个很好的演练:ASP.Net 上的 Stephen Walther
使用使用正则表达式的 DataAnnotations,您可以强制执行 7 个字符的字符串。DataAnnotations 也可以在客户端使用,你只需要启用它。
查看这篇文章了解更多信息:http ://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
您不需要为此创建自定义验证器。您可以使用 StringLength 属性来实现您想要的开箱即用:
[StringLength(MinimumLength=7, MaximumLength=7)]
public int Number { get; set; }