2011-11-14 16 views
6

Ho un'app Web C# .Net MVC3 e usiamo le aree di testo HTML.TextAreaFor() per la modifica e la visualizzazione. In un caso dovrebbe essere edibile e in un altro deve essere visualizzato solo. Come potrei realizzare questo? C'è un altro elemento che dovrei usare o posso disabilitare TextAreaFor? Inoltre, il TextAreaFor ha la necessità di ritorno a capo automatico nel display modalità solo così ... è in una cella della grigliaDisabilitare un HTML.TextAreaFor in MVC3

risposta

20

Basta utilizzare il parametro htmlAttributes:

@Html.TextAreaFor(model => model.Something, new { @readonly = true }) 

Per riordinare la if/else nella vostra Visualizza, usa un metodo di estensione che controlla if e rende la diversa casella di testo.

Non sei sicuro di quello che vuoi dire circa il ritorno a capo - dalla mia comprensione <textarea> elementi avvolgono sempre, a meno che non si utilizza wrap="off"

+0

@ RPM .... perfetto. Sapevo che doveva essere qualcosa del genere. Grazie! – MikeTWebb

1

Per la seconda parte della tua domanda, è possibile disattivare il confezionamento in questo modo:

@Html.TextAreaFor(m => m.Name, new { wrap = "off" })