2011-07-01 27 views
46

Este es mi código:ASP.NET MVC: Html.EditorFor y cuadros de texto multilínea

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

Esto es lo que genera:

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

¿Cómo le digo que que el campo debería ser un cuadro de texto con cinco líneas en lugar de solo un cuadro de texto de una sola línea?

+0

posible duplicado de [ASP.NET MVC3 - textarea con @ Html.EditorFor] (http://stackoverflow.com/questions/4927003/asp-net-mvc3-textarea-with-html-editorfor) –

Respuesta

29

en su opinión, en lugar de:

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

sólo tiene que utilizar:

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

Lo bueno que me gusta de este enfoque es que no necesito ir completamente a mis propiedades en otro ensamblaje ... mis clases de propiedades modelo (los modelos de vista seguros deberían usarse más, pero es situacional dependiendo de la aplicación, etc.). Además de la respuesta seleccionada, el problema es si otra página o aplicación desea que el texto no sea de líneas múltiples. IMO esto es ideal para algunas aplicaciones mientras que el otro está bien para otros. Para mí fue @ Html.TextAreaFor (model => model.Comments, 5, 1, new {@class = "form-control"}) thx –

9

Otra forma

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

Y en el CSS hacer esto

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

Eso dealie Tipo de datos permite retornos de carro en los datos, no a todos les gusta eso.

Cuestiones relacionadas