ASP.NET MVC: Html.EditorFor и многострочные текстовые поля - PullRequest
48 голосов
/ 02 июля 2011

Это мой код:

    <div class="editor-label">
        @Html.LabelFor(model => model.Comments[0].Comment)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Comments[0].Comment)
        @Html.ValidationMessageFor(model => model.Comments[0].Comment)
    </div>

Вот что он генерирует:

    <div class="editor-label">
        <label for="Comments_0__Comment">Comment</label>
    </div>
    <div class="editor-field">
        <input class="text-box single-line" data-val="true" data-val-required="The Comment field is required." id="Comments_0__Comment" name="Comments[0].Comment" type="text" value="" />
        <span class="field-validation-valid" data-valmsg-for="Comments[0].Comment" data-valmsg-replace="true"></span>
    </div>

Как мне сказать, что поле должно быть текстовым полем из пяти строк, а не просто однострочным текстовым полем?

Ответы [ 3 ]

113 голосов
/ 02 июля 2011

Использовать тип данных 'MultilineText':

[DataType(DataType.MultilineText)]
public string Text { get; set; }

См. ASP.NET MVC3 - текстовая область с @ Html.EditorFor

35 голосов
/ 28 октября 2013

по вашему мнению, вместо:

@Html.EditorFor(model => model.Comments[0].Comment)

просто используйте:

@Html.TextAreaFor(model => model.Comments[0].Comment, 5, 1, null)
11 голосов
/ 23 декабря 2014

Другим способом

@Html.TextAreaFor(model => model.Comments[0].Comment)

И в вашем css сделайте это

textarea
{
    font-family: inherit;
    width: 650px;
    height: 65px;
}

Этот компилятор DataType допускает возврат каретки в данных, не всем это нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...