Создание многострочного текстового поля с использованием функции Html.Helper
Я пытаюсь создать многострочный текстовый файл с использованием ASP.NET MVC со следующим кодом.
<%= Html.TextBox("Body", null, new { TextBoxMode = "MultiLine", Columns = "55px", Rows = "10px" })%>
В нем отображается только однострочный текстовый блок с фиксированным размером.
с другой стороны
<asp:TextBox runat="server" ID="Body" TextMode="MultiLine" Columns="55" Rows="10"></asp:TextBox>
отображает правильное представление, но в методе post post с именем formCollection с именем form
form["Body"];
возвращает нулевое значение.
Ответы
Ответ 1
Многострочный текстовый поле в html <textarea>
:
<%= Html.TextArea("Body", null, new { cols = "55", rows = "10" }) %>
или
<%= Html.TextArea("Body", null, 10, 55, null) %>
или даже лучше:
<%= Html.TextAreaFor(x => x.Body, 10, 55, null) %>
И еще одна возможность заключается в том, чтобы украсить ваше свойство модели просмотра атрибутом [DataType]
:
[DataType(DataType.MultilineText)]
public string Body { get; set; }
и на ваш взгляд:
<%= Html.EditorFor(x => x.Body) %>
и установите ширину и высоту с помощью CSS.
Ответ 2
MVC4 вы должны использовать:
@Html.TextAreaFor(x => x.Body, 10, 15, null)
Ответ 3
Это позволяет многострочный, устанавливать пользовательскую ширину, высоту и место установки.
Для проверки используется StringLength или RegularExpression в Model.cs
Синтаксис просмотра бритвы
@Html.TextAreaFor(model => model.property, new { style = "width: 420px; height: 100px;", placeholder = "Placeholder here.." })
Ответ 4
Я думаю, что Html.EditorFor Это то, что вы ищете. Это только для MVC2 и вверх, хотя. Помогает ли это?
Если вы используете DataAnnotations и украшаете свое свойство с помощью [DataType(DataType.MultilineText)]
Атрибут MVC должен выставить требуемый html для вас.
Ответ 5
В слое Entity:
[MaxLength(500)]
public string Body { get; set; }
И в поле зрения:
@Html.TextAreaFor(model => model.Body, new { rows = 10, cols = 50 })
Ответ 6
Решение VB.net:
@Html.TextAreaFor(функция (модель) Model.Body, 3, 55, Nothing)