Обновлено для современных версий .NET в соответствии с предложением @ 1c1cle в комментарии:
<%= Html.TextBoxFor(model => Model.SomeFieldName, new {{"readonly", "true"}}) %>
Осознайте, что это не «безопасный» способ сделать это, поскольку кто-то может внедрить javascript, чтобы изменить это.
Следует иметь в виду, что если вы установите значение readonly
на false
, вы фактически не увидите никаких изменений в поведении! Поэтому, если вам нужно управлять этим на основе переменной, вы не можете просто подключить эту переменную туда. Вместо этого вам нужно использовать условную логику, чтобы просто не передавать этот атрибут readonly
.
Вот непроверенное предложение о том, как это сделать (если с этим есть проблема, вы всегда можете сделать if / else):
<%= Html.TextBoxFor(model => Model.SomeFieldName, shouldBeReadOnlyBoolean ? new {{"readonly", "true"}} : null) %>