如何限制 MVC 中文本框中的字符长度?
Posted
技术标签:
【中文标题】如何限制 MVC 中文本框中的字符长度?【英文标题】:How do I limit the length of characters in a textbox in MVC? 【发布时间】:2010-12-28 01:42:08 【问题描述】:我想在 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 中使用以这种方式生成的文本框执行此操作?
【问题讨论】:
为什么要使用<asp:Label>
?那是网络表单。这是 MVC,使用 <label>
标签。
无论哪种方式都有效,所以我不认为这是一个问题,但感谢您的提醒,我会付诸实践......
【参考方案1】:
@Html.EditorFor(model => model.Telephone, new htmlAttributes = new @class= "form-control", @maxlength = "10" )
这里我使用 html.Editor(不使用 Textboxfor),并且我使用数据库中的电话号码字段。我不希望用户输入超过十个电话号码。
【讨论】:
虽然此代码 sn-p 可以解决问题,但 including an explanation 有助于提高您的回复质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案2】:使用下面的 html 来设置 TextBox 的最大长度 在 Html.TextBox 第二个参数是文本框的值 所以,你可以传递 "" 或 null
<%=Html.TextBox("polNum", "", new maxlength = 10 ) %>
【讨论】:
【参考方案3】:<%=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 哦,亲爱的,请让我修复一下我导致您的网页炸毁的问题。【参考方案4】:在纯 HTML 中执行:
<%= Html.TextBox("polNum", null, new @maxlength = "25" ) %>
(null
参数是因为你不想要默认值...)
【讨论】:
虽然没有伤害任何东西,但maxLength
前面的 @
在这里不是必需的,因为它不是像 class
这样的语言语法【参考方案5】:
使用获取 Html 属性的overload of the TextBox method:
Html.TextBox( "polNum", "value", new maxlength="10" );
【讨论】:
【参考方案6】:您需要设置一些 html 属性... 类似:
<%=Html.TextBox("polNum",null, new maxlength=10) %>
祝你好运
【讨论】:
其实你不需要这个重载。您可以跳过 null 并使用两个参数的版本。以上是关于如何限制 MVC 中文本框中的字符长度?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Razor Html.EditorFor 时限制文本框中的字符长度