[asp.net-mvc-3] ASP.NET MVC: Html.EditorFor and multi-line text boxes

This is my code:

    <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>

This is what it generates:

    <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>

How do I tell it that the field should be a text box with five lines instead of just a single-line text box?

This question is related to asp.net-mvc-3 razor

The answer is


Another way

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

And in your css do this

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

That DataType dealie allows carriage returns in the data, not everybody likes those.


in your view, instead of:

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

just use:

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