2011-02-10 1 views
8

So che è possibile utilizzare l'attributo DataType con l'helper html EditorFor per specificare che una particolare proprietà di un'entità modello deve essere visualizzata come una linea multipla Campo di inserimento.Utilizzo di Html.EditorPer generare una textarea con un numero specifico di righe e colonne

E se si desidera specificare il numero di righe e colonne che deve avere l'area di testo?

Nel modello:

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

Nella vista:

@Html.EditorFor(x => x.HTMLText) 

risultato voluto:

<textarea id="HTMLText" rows="10" cols="40">value</textarea> 

C'è un modo per generare questo tipo di codice senza utilizzare la @ Html.Textarea() helper?

risposta

8

Non sai come impostare le righe e le colonne, ma puoi modificare il CSS di quelle aree di testo usando la classe .multi-line. Questa classe viene aggiunta all'area di testo quando si utilizza EditorFor in modo da poter specificare la larghezza e l'altezza in quella classe per ottenere le dimensioni desiderate.

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

Utilizzando questa tecnica vorrebbe dire che dovrò specificare una classe nella vista. Stavo cercando un modo per controllarlo direttamente dal modello. – Jason

+0

@Jason: dovresti specificarlo solo nella vista se hai fatto CSS a livello di pagina. Se lo lanci in un foglio di stile esterno, questo non sarà visibile. So che non risponde totalmente alla tua domanda, ma ti fa sapere che è un'opzione. – amurra

+0

@Lmrini L'apripista di Frozen è l'approccio migliore, invece di aggiungere una classe css che è possibile utilizzare per il rasoio per generare gli attributi desiderati. – Bjego

0

Sembra che questo non è più necessario il MVC 5 quando si dispone di @ Html.EditorFor con DataType.MultilineText campo.

1

È possibile specificare la dimensione e gli attributi carattere equivalente di fila e col rasoio a/C# cioè:

@Html.TextAreaFor(model => model.Longtext, new { htmlAttributes = new { @class = "ctrl-col2 ctrl-col1", @row = "4", @col = "30" } }) 
+0

Questo è il tiratore corretto! – Bjego