Tengo problemas con una simple aplicación ASP.NET y el botón Atrás después de una publicación.El navegador ASP.NET muestra "la página web ha caducado" para el botón Atrás (después de una publicación posterior)
La página en cuestión tiene un formulario simple, algunos campos de texto, etc., y un menú desplegable que hace una devolución de datos (autopostback).
El flujo "normal" es el usuario rellena el formulario y quizás cambie el menú desplegable. Según el valor desplegable, el contenido de la página podría cambiar.
El problema que tengo es que una vez que el usuario ha cambiado el menú desplegable y la devolución de datos se ha completado, el usuario hace clic en el botón Atrás. Ven un mensaje de "página web expirada" de IE.
He configurado lo siguiente:
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.Private);
Pero eso no parece haber clavado el problema.
El encabezado de respuesta real Cache-Control lee como:, no-cache privada: "Set-Cookie"
En una aplicación ASP clásico del con una cabecera de respuesta Cache-Control de simplemente el botón "privado" de nuevo se comporta como se esperaba después de una "publicación posterior".
¿Hay alguna forma de obligar a ASP.NET a establecer explícitamente el control de caché exactamente como "privado"? ¿O cualquier otra solución que tenga como resultado que el botón Atrás y las devoluciones funcionen bien juntas?
Gracias!
No tiene mucho sentido para mí que una aplicación ASP clásico que pone de caducidad a -1 minuto, privado de control de caché permite la espalda el botón funciona "como se esperaba", pero una aplicación ASP.NET con vencimiento establecido en -1 minuto y el control de caché establecido en "privado, no-caché: establecer cookie" no funciona. Esto para mí parece apuntar a "no-cache: set cookie" como el problema. – user505765
Entiendo. La diferencia es que Classic ASP no tiene post-backs con los que lidiar. Al hacer clic en un botón, se activa la "Acción" del formulario y se carga una página completamente nueva cada vez. Con ASP.NET, si cambia una lista desplegable, y esa lista desplegable tiene "autopostback" establecido en verdadero, entonces el navegador realmente ve esto como una navegación a una página nueva. Todo está en cómo se implementan las devoluciones, que es una fuente constante de problemas en casos como este. Técnicamente, cambiar un conjunto desplegable para autompostback activa la opción "publicar" en el formulario, pero el paradigma de WebForms lo desenfoca ... – David
Quizás esta es una mejor explicación: para el navegador, cada devolución es en realidad una visita a una página nueva, y se almacena en la historia, a pesar de que el paradigma de WebForms intentó hacer que pareciera que no era así para el desarrollador. – David