html.textboxfor()应该是7个字符

时间:2011-03-24 06:35:55

标签: c# asp.net asp.net-mvc-2-validation

我需要一个文本框,它应该是7个字符, 我写的是

Html.TextboxFor(x=>x.Number, new {maxLength = "7"};

这个案例只需要7个字符,但是如果我想要少于7个字符,它会占用? 是否有像maxlength这样的属性只需要7个字符。

的问候, michael velayadu

4 个答案:

答案 0 :(得分:2)

文本框中没有最小长度的Html属性。您可以使用数据注释来强制该字段的最大和最小文本长度...

这是使用数据注释的非常好的演练:Stephen Walther on ASP.Net

答案 1 :(得分:2)

为了它的价值,这些答案都不是很清楚。您要做的是基本上设置最小和最大长度属性。基本上有几种方法可以使用数据注释来实现这一点。

最简单的方法:

[MinLength(7)]
[MaxLength(7)]

使用StringLengthAttribute ... StringLength有两个重载方法。两者都有int参数@maximumLength,其中一个重载包括NamedParameters。因此,对于maxlength,您不会使用命名参数,但对于minlength,您会:

[StringLength(7, MinimumLength=7)]

如果你真的很困惑,你也可以这样做:

[MinLength(7)]
[StringLength(7)]

答案 2 :(得分:0)

使用正则表达式的DataAnnotations,您可以强制执行7个字符串的字符串。 DataAnnotations也可以在客户端使用,您只需要启用它。

查看此帖子了解详情:http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

答案 3 :(得分:0)

您无需为此创建自定义验证程序。您可以使用StringLength属性来实现您想要的开箱即用:

[StringLength(MinimumLength=7, MaximumLength=7)]
public int Number { get; set; }