2012-01-09 13 views
9

Hola gente he estado en esto por 5 días y no he podido encontrar una solución. Estoy tratando de hacer que esto pase a la línea múltiple @Html.TextBoxFor(model => model.Headline, new { style = "width: 400px; Height: 200px;"}) pero no he tenido suerte.TextBoxFor Mulitline

Lo siguiente es lo que he intentado:

@Html.TextBoxFor.Multiline (does not work) 

he puesto Multilínea en el extremo de nuevo y que no ha funcionado. ¿Cuál es la forma más simple de hacer esto?

Gracias estoy usando MVC3 C#

+0

posible duplicar: http://stackoverflow.com/questions/6740890/mvc3-razor-html-textboxfor-can-i-make-it-multi-line-like-textareafor – rene

+1

Eso es complejo, por lo que Quiero Por eso he declarado "¿Cuál es la forma más simple de hacer esto?" – user1137472

Respuesta

46

Se puede usar un TextAreaFor ayudante:

@Html.TextAreaFor(
    model => model.Headline, 
    new { style = "width: 400px; height: 200px;" } 
) 

sino una solución mucho mejor es decorar su Headline vistas Bien modelo con el atributo [DataType] especificando que desea que rinde como <textarea>:

public class MyViewModel 
{ 
    [DataType(DataType.MultilineText)] 
    public string Headline { get; set; } 

    ... 
} 

y luego utilizar el EditorFor ayudante:

<div class="headline"> 
    @Html.EditorFor(model => model.Headline) 
</div> 

y finalmente en su archivo CSS especifica su estilo:

div.headline { 
    width: 400px; 
    height: 200px; 
} 

Ahora usted tiene una adecuada separación de preocupaciones.

+2

El área de texto va a ser lo que quieres para un campo de formulario multilínea. El cambio de tamaño es algo que ocurre con diferentes navegadores, tanto Firefox como Chrome permitirán que eso suceda donde IE no lo hará. – Chris

+0

@Darin Gracias a Darin por explicar esta cosa minuciosa, Antes de esto no he usado la anotación '[Datatype (DataType.MultilineText)]' para textarea Gracias. – user1006544

+2

Sé que esta es una publicación antigua, pero es el resultado de búsqueda superior para "razor multiline textboxfor" y solo quería agregar que el selector de CSS es incorrecto y debe ser 'div.headline textarea' – Jocie

Cuestiones relacionadas