Как мне ограничить длину символов в текстовом поле в MVC?

7

Я хотел бы ограничить текстовое поле до 10 символов в MVC.

<label ID="lbl2" runat="server" Width="20px"></label>
<%=Html.TextBox("polNum") %>    
<label ID="lbl1" runat="server" Width="10px"></label>

Я знаю, что вы можете установить свойство Max Length в .net. Как это сделать в MVC с созданным таким образом текстовым полем?

  • 2
    Зачем использовать <asp:Label> ? Это веб-формы. Это MVC, используйте <label> .
  • 0
    Это работало в любом случае, так что я не видел в этом проблемы, но спасибо за внимание, я буду применять это на практике ...
Теги:
asp.net-mvc

6 ответов

12
Лучший ответ

Вам нужно установить некоторые свойства html... что-то вроде:

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

удача

  • 3
    На самом деле, вам не нужна эта перегрузка. Вы можете пропустить ноль и перейти к версии с двумя аргументами.
3

Сделайте это в обычном HTML:

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

(Параметр null связан с тем, что вы не хотите значения по умолчанию...)

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" }
  • 0
    В XHTML все атрибуты должны быть в нижнем регистре, поэтому maxlength вместо MaxLength
  • 2
    О, ДОРОГОЙ, дай мне исправить, извини, я взорвал твою веб-страницу.
1

Используйте ниже html для установки максимальной длины TextBox В Html.TextBox вторым параметром является значение для текстового поля. Итак, вы можете передать "" или null

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

Используйте перегрузку метода TextBox, который получает атрибуты Html:

Html.TextBox( "polNum", "value", new { maxlength="10" } );
0

Если вы используете ASP.NET Core, этот маленький кусочек JQuery помог мне (может работать и в обычном ASP.NET, но это не было проверено):

$(document).ready(function () {
  $("input[data-val-length-max]").each(function(index) {
    // console.log( index + ": " + $(this).attr('data-val-length-max'));
    $(this).attr("maxlength", $(this).attr('data-val-length-max'));
  });
});

Используйте приведенный выше код в сочетании с атрибутами проверки из System.ComponentModel.DataAnnotations, такими как MaxLengthAttribute и/или StringLengthAttribute, как таковыми:

[StringLength (1, ErrorMessage = "Среднее начальное значение не может превышать 1 символ.")] [MaxLength (1, ErrorMessage = "Среднее начальное значение не может превышать 1 символ.")]

При необходимости вы также можете использовать дополнительные атрибуты проверки. Например, я использую регулярное выражение для проверки среднего начального значения:

[RegularExpression (@"^ [a-zA-Z '] * $", ErrorMessage = "Разрешены только альфа-символы.")]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню