Just use the htmlAttributes parameter:
@Html.TextAreaFor(model => model.Something, new { @readonly = true })
To remove if / else in your view, use an extension method that performs an if check and displays a different text field.
Not sure what you mean by word wrapping - from my understanding <textarea> elements always wrap up unless you use wrap="off"
source share