¿Cómo envío una entrada deshabilitada en ASP.NET MVC?
c#
.net
javascript
asp.net-mvc
Sanchitos
fuente
fuente
Respuestas:
¿No puedes hacer el campo en
readonly="readonly"
lugar dedisabled="disabled"
? Se enviará un valor de campo de solo lectura al servidor sin que el usuario lo pueda editar. SinSELECT
embargo, una etiqueta es una excepción.fuente
<%: Html.TextBoxFor(model => model.p1, new { @readonly = "readonly" }) %>
¿cómo puedo atenuarlo para que visualmente parezca que no es editable? Mejor aún, ¿podemos usar algo similar a LabelFor? Probé LabelFor pero solo obtiene el DisplayName ...type="checkbox"
entradasGracias a todos:
La forma en que resolví esto:
Nota:
Obtuve esta información sobre la respuesta, pero me editaron.
fuente
textBox.Attributes.Add("readonly", "readonly");
y la explicación está en el enlace$("#textBoxId").css("color", "#c0c0c0")
.@ppumkin mencionó esto en su comentario sobre esta respuesta, pero quería resaltarlo porque no pude encontrar otros recursos sobre el envío de datos de un discapacitado
<select>
. También creo que es relevante para la pregunta, ya que las selecciones no son<input>
s, pero son "entradas".Ejemplo:
Precaución: esto colocará dos etiquetas en la página con el mismo ID, que no es HTML realmente válido y podría causar dolores de cabeza con javascript. Para mí, tengo javascript para establecer el valor del menú desplegable por su html
id
, y si pones el campo oculto primero, el javascript lo encontrará en lugar deselect
.fuente
Por lo general, si tengo un campo que es de "solo lectura" pero debe enviarse de nuevo al servidor, desactivaré la visualización (o simplemente texto), pero luego agregaré un campo oculto con el mismo nombre. Aún debe asegurarse de que el campo no se modifique realmente en el lado del servidor, simplemente no lo actualice desde el modelo en su acción, pero el estado del modelo seguirá siendo preciso si hay errores.
fuente
También puede usar un código como este antes de que se envíe el formulario:
fuente
Ajax.BeginForm
?Por diseño, los navegadores no lo admiten.
Hágalos, lo
readonly
que permite enviar valores al servidor o si está tratando con controles que aún se pueden usar conreadonly
atributos como Seleccionar, agregue un estilo CSSpointer-events: none;
para que no sean interactivosEs una especie de truco, ¡pero funciona! También funciona cuando envía un formulario directamente con el botón Enviar sin usar javascript. ¡No se requiere trabajo adicional!
P.ej:
fuente
Puede crear una plantilla de editor como la siguiente
CSS
Plantilla de editor
fuente
cuando estamos tratando con casillas de verificación deshabilitadas pero marcadas y queremos publicar el valor, debemos asegurarnos de que nuestro campo oculto aparezca antes del campo oculto @ Html.CheckBoxFor.
el siguiente es el enlace desde donde encontré la respuesta. http://davecallan.com/posting-disabled-checkboxes-mvc-razor-views/#comment-11033
fuente
expandiendo Tasos '(": disabled", $ (' # xxxForm ')). removeAttr ("disabled"); puedes usar:
fuente
Esto ayudará a enviar los valores del modelo en ASP.net:
fuente
Por lo general, uso esta forma para CheckBox o CheckBoxFor porque desactivarlo hace que se pierda el valor. Readonly tampoco funciona en la casilla de verificación.
fuente
Simplemente coloque este script en @section scripts en su página. esto habilitará las entradas cuando envíe la página, y debe redirigir al usuario a otra página después de enviarla.
fuente
Simplemente haga que esa propiedad sea [Obligatoria] en el ViewModel vinculado a esa vista.
fuente