Ответ 1
Использовать тип данных "MultilineText":
[DataType(DataType.MultilineText)]
public string Text { get; set; }
Это мой код:
<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>
Как мне сказать, что поле должно быть текстовым полем с пятью строками вместо однострочного текстового поля?
Использовать тип данных "MultilineText":
[DataType(DataType.MultilineText)]
public string Text { get; set; }
в вашем представлении, а не:
@Html.EditorFor(model => model.Comments[0].Comment)
просто используйте:
@Html.TextAreaFor(model => model.Comments[0].Comment, 5, 1, null)
Другой способ
@Html.TextAreaFor(model => model.Comments[0].Comment)
И в вашем css сделайте это
textarea
{
font-family: inherit;
width: 650px;
height: 65px;
}
Этот тип данных DataType позволяет возвращать кадры в данных, а не всем нравится.