En ASP.MVC 3, ¿cómo puedo especificar las columnas y filas de una multilínea EditorFor (textarea)? Estoy usando [UIHint("MultilineText")], pero no puede encontrar ninguna documentación acerca de cómo agregar atributos para el área de texto.

HTML que desea:

 <textarea cols="40" rows="10"></textarea>

Parte relevante de mi MVC 3 Modelo:

[UIHint("MultilineText")]
public string Description { get; set; }

Parte relevante de mi maquinilla de Afeitar cshtml:

<div class="editor-field">
    @Html.EditorFor(model => model.Description)
</div>

Lo que estoy recibiendo en Ver código Fuente:

 <div class="editor-field">
     <textarea class="text-box multi-line" id="Description" name="Description"></textarea>
 </div>

¿Cómo puedo conjunto de filas y columnas?

InformationsquelleAutor Dan Sorensen | 2011-06-02

6 Comentarios

  1. 131

    Uso TextAreaFor

    @Html.TextAreaFor(model => model.Description, new { @class = "whatever-class", @cols = 80, @rows = 10 })

    o el uso de estilo para multi-line clase.

    Usted podría también escribir EditorTemplate para esto.

    • Por supuesto! Supongo que se sobre-pensar el problema.
  2. 26

    En ASP.NET MVC 5 podría utilizar el [DataType(DataType.MultilineText)] atributo. Va a hacer un TextArea etiqueta.

    public class MyModel
    {
        [DataType(DataType.MultilineText)]
        public string MyField { get; set; }
    }

    A continuación, en la vista si necesita especificar las filas usted puede hacer esto de esta manera:

    @Html.EditorFor(model => model.MyField, new { htmlAttributes = new { rows = 10 } })

    O simplemente utilizar el TextAreaFor con el derecho de sobrecarga:

    @Html.TextAreaFor(model => model.MyField, 10, 20, null)
    • Bueno saber que hizo ese cambio. 🙂
    • Actualmente es MVC 5, y funciona.
    • Atributo DataType.MultilineText obras en MVC 4 así…
    • Desde MVC 3 al parecer: stackoverflow.com/questions/4927003/…
    • Gracias por tus soluciones diversas. Ellos trabajan para mí.
  3. 5

    Una opción parece ser el uso de CSS para el estilo de la textarea

    .multi-line { height:5em; width:5em; }

    Ver esta entrada en LO o este uno.

    Amurra aceptados por la respuesta parece implicar esta clase se añaden automáticamente cuando se utiliza EditorFor pero tendrías que comprobar esto.

    EDIT: Confirmado, lo hace. Así que sí, si usted desea utilizar EditorFor, el uso de este estilo CSS hace lo que usted está buscando.

    <textarea class="text-box multi-line" id="StoreSearchCriteria_Location" name="StoreSearchCriteria.Location">
    • Gracias por responder el cartel original de la pregunta. Cuando se utiliza un marco que crea campos de entrada utilizando EditorFor, e.g Telerik ASP.NET MVC, sustituyendo TextAreaFor no es una opción. Gracias por este.
  4. 0

    en mvc 5

                  @Html.EditorFor(x => x.Address, 
                  new {htmlAttributes = new {@class = "form-control", 
                       @placeholder = "Complete Address", @cols = 10, @rows = 10 } })
  5. 0

    En .net VB – usted podría lograr el control sobre las columnas y las filas con la siguiente en el archivo de occam:

    @Html.EditorFor(Function(model) model.generalNotes, New With {.htmlAttributes = New With {.class = "someClassIfYouWant", .rows = 5,.cols=6}})

Dejar respuesta

Please enter your comment!
Please enter your name here