web-dev-qa-db-fra.com

ASP.NET MVC: Html.EditorFor et zones de texte multiligne

Ceci est mon 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>

Voici ce que cela génère:

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

Comment puis-je lui dire que le champ doit être une zone de texte de cinq lignes au lieu d'une zone de texte d'une seule ligne?

49
Jonathan Allen

Utilisez le type de données 'MultilineText':

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

Voir ASP.NET MVC3 - textarea with @ Html.EditorFor

114
Rajesh

à votre avis, au lieu de:

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

juste utiliser:

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

Autrement

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

Et dans ton css fais ça

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

Ce deal DataType autorise les retours chariot dans les données, tout le monde n'aime pas celles-ci.

11
SomeGuy