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.
Tenga en cuenta que un TextBox w3schools.com/tags/att_input_disabled.asp no se enviará con un formulario html, sino un TextBox de readonly .
La documentation MVC3 muestra la firma como Html.TextBox (nombre de cadena, valor de objeto, objeto htmlAttributes) utilizado anteriormente.
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 .