如何在MVC中限制文本框的字符长度?

10
我想在MVC中限制文本框的字符数为10个。
<label ID="lbl2" runat="server" Width="20px"></label>
<%=Html.TextBox("polNum") %>    
<label ID="lbl1" runat="server" Width="10px"></label>

我知道在.net中可以设置Max Length属性。那么我如何在使用此方法生成的MVC文本框中设置它?


2
为什么要使用 <asp:Label>?那是Webforms。这是MVC,请使用 <label> 标签。 - George Stocker
无论哪种方式都可以运行,所以我没有认为这是一个问题,但感谢您的提醒,我会将其付诸实践... - MrM
6个回答

16
你需要设置一些HTML属性... 例如:
<%=Html.TextBox("polNum",null, new {maxlength=10}) %>   

祝你好运


4
其实,你不需要这个重载。你可以跳过null,选择两个参数的版本。 - user1228

3

用纯HTML实现:

<%= Html.TextBox("polNum", null, new { @maxlength = "25" }) %>

null 参数是因为您不希望有默认值...)

虽然在这里使用 @ 来修饰 maxLength 不会有任何影响,但是它并不像 class 一样是语言语法,因此并不是必需的。 - sonyisda1

2
<%=Html.TextBox("polNum", new { maxlength = 10 }) %>

http://msdn.microsoft.com/en-us/library/dd492984.aspx

HtmlHelper使用反射来检查匿名类型。它将类型的字段转换为该TextBox控件上的属性。生成的HTML如下所示:
<Textbox id="polNum" maxlength =10 />

你可以使用匿名类型来添加其他相关属性,例如:
new { @class = "MyCssClass", type = "password", value="HurrDurr", 
      textmode="multiline" }

在XHTML中,所有属性都应该小写,所以使用maxlength而不是MaxLength。 - Jan Jongboom
2
哦,亲爱的,让我修复一下。抱歉,我导致你的网页崩溃了。 - user1228

1
使用TextBox方法的重载,该方法获取Html属性:
Html.TextBox( "polNum", "value", new { maxlength="10" } );

1

使用以下HTML代码设置TextBox的最大长度 在Html.TextBox中,第二个参数是文本框的值,因此您可以传递""或null

   <%=Html.TextBox("polNum", "", new { maxlength = 10 }) %>

0

@Html.EditorFor(model => model.Telephone, new { htmlAttributes = new { @class = "form-control", @maxlength = "10" } })

这里我使用了html.Editor(不使用Textboxfor),并且我正在使用数据库中的电话号码字段。我不希望用户在电话号码上输入超过十个数字。


虽然这段代码片段可能解决了问题,但包括解释有助于提高您的回答质量。请记住,您正在为未来的读者回答问题,而这些人可能不知道您提出代码建议的原因。 - Stefan Crain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接