ASP.NET MVC:Html.EditorFor和多行文本框

时间:2011-07-01 20:36:31

标签: asp.net-mvc-3 razor

这是我的代码:

    <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 个答案:

答案 0 :(得分:113)

使用数据类型'MultilineText':

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

请参阅ASP.NET MVC3 - textarea with @Html.EditorFor

答案 1 :(得分:35)

在您看来,而不是:

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

只需使用:

@Html.TextAreaFor(model => model.Comments[0].Comment, 5, 1, null)

答案 2 :(得分:11)

另一种方式

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

在你的CSS中做这个

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

DataType协议允许数据中的回车,而不是每个人都喜欢这些。