tag route net mvc hiddenfor for asp asp.net-mvc

asp.net-mvc - route - select asp-for asp-items



¿Cómo crear un texto de solo lectura usando html helper en asp.net mvc? (6)

Quiero desactivar un cuadro de texto en la vista. Entonces uso el siguiente código:

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

o

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

Ambos no funcionan. ¿cual es la solución?


Aprovechando la API más actualizada que puede utilizar:

Motor de formularios web:

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

Motor de la maquinilla de afeitar:

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

Aclamaciones.


O esto:

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


Si no está obligado a mostrar un cuadro de texto de solo lectura en su página web, considere usar el @Html.DisplayFor helper: su salida será de solo lectura (en realidad será solo un texto en un div) y será parte del Modelo cuando El motor modelará el enlace al enviar.



Tratar

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

No estoy seguro de que tengas que usar la sobrecarga con 4 parámetros. Debería poder usar el que tiene 3, pero debe agregar @ al solo de lectura ya que readonly es una palabra clave en C #. Y establecer @readonly en solo lectura es compatible con XHTML.


Tratar

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

en lugar de

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

Si verifica la documentación , puede ver que el tercer parámetro no es htmlAttributes , como probablemente esperaba.

Necesitas usar la sobrecarga con cuatro parámetros .