如何限制 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 中使用以这种方式生成的文本框执行此操作?

【问题讨论】:

为什么要使用 &lt;asp:Label&gt; ?那是网络表单。这是 MVC,使用 &lt;label&gt; 标签。 无论哪种方式都有效,所以我不认为这是一个问题,但感谢您的提醒,我会付诸实践...... 【参考方案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 时限制文本框中的字符长度

如何限制在 MFC 的文本框中键入的字符数?

如何限制要输入的文本框中的任何特定字符。我只想限制 ^ 和 %

如何在 Access 报告文本框中底部对齐字符串?

JQ,如何获得一个文本框中文本的最后一个字符。

从asp.net mvc的部分视图中的文本框中获取值