Как добавить maxlength для TextAreaFor в режиме просмотра с помощью бритвенного двигателя

У меня есть элемент управления TextArea() в моем представлении, реализованный с использованием Razor Engine.

@Html.TextArea("EventNature",new { style = "width: 200px; height: 100px;" })

Как установить атрибут Maxlength для этого элемента управления? есть ли встроенный атрибут в RazorEngine или мне нужно использовать скрипты?

Ответ 1

Вы можете сделать это как:

@Html.TextArea("EventNature",new { maxlength=50, // or other value
                                  style = "width: 200px; height: 100px;" })

Просто имейте в виду атрибут HTML5

maxlength HTML5
Максимальное количество символов (кодовые точки Юникода), которые пользователь может ввести. Если он не указан, пользователь может ввести неограниченное количество символов.

MDN


Проверка Javascript (с использованием jQuery) для HTML < 5:

$('#EventNature').keypress(function(){
    if (this.value.length >= 10) // allowing you to enter only 10 chars.
    return false;        
});​

DEMO

Ответ 2

Это также работает для помощника TextAreaFor с более чем одним анонимным типом в new

Подтверждено до отлично работает в Visual Studio 2015 с MVC 5

@Html.TextAreaFor(model => model.Comments, 5, 500, new {maxlength=4000,  @class = "form-control" })

Ответ 3

Вы также можете ограничить длину текстового поля, например:

<textarea id="EventNature1" maxlength="10"></textarea>

        OR
@Html.TexareaFor(m=>m.Name,new{@maxlength="10"})

Ответ 4

<p>Customer Number: @Html.TextBox("SearchString1",null, new {maxlength = 6})
 <input type="submit" value="Filter" /></p>

Вышеприведенный пример, который работал у меня, чтобы ограничить ввод максимально допустимых символов. Советы, которые показывают, что вы можете стрелять при использовании среды .Net, чрезвычайно полезны. (* Заметьте, это физически не меняет размер текстового поля)

"SearchString1" = Строковое имя ----- null = Значение объекта ------ new {maxlength = 6} = object htmlAttributes

Ответ 5

Как установить атрибут Maxlength для этого элемента управления?

Атрибут maxlength недействителен для элемента <textarea>. Это не ограничение ASP.NET MVC. В спецификации HTML этот атрибут определяется только для простых полей ввода текста. Если вы хотите ограничить количество символов, которые пользователь может ввести в текстовое поле, вы можете использовать javascript.