Подтвердить что ты не робот

Как создать текст readonly с помощью html-помощника в asp.net mvc?

Я хочу отключить текстовое поле в представлении. Поэтому я использую следующий код:

<%= Html.TextBox("ID", Model.ID, new { readonly="true" })%>

или

<%= Html.TextBox("ID", Model.ID, new { enable="false" })%>

Оба они не работают. какое решение?

4b9b3361

Ответ 1

Try

<%= Html.TextBox("ID", Model.ID, new { @readonly="readonly" })%>

Я не уверен, что вам нужно использовать перегрузку с 4 параметрами. Вы должны иметь возможность использовать один с 3, но вам нужно добавить @в readonly, так как readonly является ключевым словом в С#. И настройка @readonly только для чтения является совместимой с XHTML.

Ответ 2

Try

<%= Html.TextBox("ID", Model.ID, null, new { @readonly="true" })%>

вместо

<%= Html.TextBox("ID", Model.ID, new { @readonly="true" })%>

Если вы проверите документацию, вы увидите, что третий параметр не htmlAttributes, как вы, вероятно, ожидали.

Вам нужно использовать перегрузку с четырьмя параметрами.

Ответ 3

Имейте в виду disabled TextBox не будет отправлен с формой html, а readonly TextBox будет.

MVC3 документация показывает подпись как Html.TextBox(имя строки, значение объекта, объект htmlAttributes), использованный выше.

Ответ 4

Если вы не вынуждены показывать текстовое поле только для чтения на своей веб-странице, подумайте об использовании помощника @Html.DisplayFor: ваш вывод будет только для чтения (на самом деле это будет всего лишь текст в div) и будет частью модели когда двигатель будет моделировать привязку для отправки.

Ответ 5

Воспользовавшись более современным API, вы можете использовать:

Web Forms Engine:

<%= Html.TextBoxFor(m => m.ID, new { @readonly = "readonly" }) %>

Двигатель бритвы:

@Html.TextBoxFor(m => m.ID, new { @readonly = "readonly" })

Приветствия.

Ответ 6

Или это:

<%= Html.TextBox("ID", Model.ID, new { @disabled="true" })%>