Pregunta

Tengo una serie de controles en una página ASP. Algunos están dentro de un UpdatePanel y otros no.

Si pongo una etiqueta XML en uno de los cuadros de texto (por ejemplo, " <foo> ") entonces todos los controles dentro del UpdatePanel no funcionan. Tan pronto como se eliminen las etiquetas, todo estará bien.

Mi botón 'enviar' está en UpdatePanel y el punto de interrupción en btnSubmit_Click solo se activa cuando no hay etiquetas en los cuadros de texto.

Soy un desarrollador de C # desde hace mucho tiempo, pero soy bastante nuevo en ASP.NET, por lo que podría faltar algo obvio ... este no es el comportamiento que espero.

¿Fue útil?

Solución

Si fuera a quitar el UpdatePanel de la página, encontraría que la devolución de datos estaba causando un error porque .NET piensa que " < foo > " ; es un bit de datos potencialmente peligroso para aceptar en el servidor. Consulte esta pregunta en StackOverflow. No ve el error porque el HTML de la página de error se devuelve a la llamada ajax de UpdatePanel en lugar de dirigirse directamente a su navegador, y UpdatePanel no sabe qué hacer con él.

Puede desactivar la comprobación agregando

ValidateRequest="false"

a < @Page ... > directiva en la parte superior de su archivo aspx. O puede modificar web.config para obtener el mismo efecto en su aplicación web.

Otros consejos

No se puede poner marcado en un área de texto. Debe escapar HTML de cualquier carácter de marcado dentro del área de texto tal como debe hacerlo con cualquier otro elemento.

<textarea>&lt;foo> &amp; &lt;bar></textarea>

Aunque en la práctica los navegadores generalmente resolverán lo que quiere decir y mostrarán cualquier < carácter tal cual, todavía es HTML no válido y XML no bien formado (presumiblemente, esta también es la raíz de su problema en ASP.NET , aunque sin un código específico es difícil saber).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top