¿Cómo actualizo la página en ASP.NET? (Déjalo recargarse por código)

¿Cómo actualizo una página en ASP.NET? (Déjalo recargarse por código)

Prefiero no utilizar Response.Redirect () porque no sé si estaré en la página, ya que está dentro de un control de usuario dentro de un elemento web dentro de sharepoint.

Una vez que la página se procesa en el cliente, solo tiene dos formas de forzar una actualización. Uno es Javascript

setTimeout("location.reload(true);", timeout); 

El segundo es una Metaetiqueta:

  

Puede establecer los intervalos de actualización en el lado del servidor.

En mis controles de usuario, después de actualizar los datos, hago lo siguiente:

  Response.Redirect(Request.RawUrl); 

Eso asegura que la página se vuelva a cargar, y funciona bien desde un control de usuario. Utiliza RawURL y no Request.Url.AbsoluteUri para preservar los parámetros GET que se pueden incluir en la solicitud.

Probablemente no desee utilizar: __doPostBack , ya que muchas páginas aspx se comportan de manera diferente cuando se hace una devolución de datos.

Esto puede ser tarde, pero espero que ayude a alguien que está buscando la respuesta.

Puede usar la siguiente línea para hacer eso:

 Server.TransferRequest(Request.Url.AbsolutePath, false); 

Intente evitar el uso de Response.Redirect ya que aumenta los pasos en el proceso. Lo que realmente hace es:

  1. Envía la página con encabezado de redirección
  2. El navegador redirige a la URL de destino.

Como puede ver, el mismo resultado requiere 2 viajes en lugar de 1 viaje.

Prueba esto:

 Response.Redirect(Request.Url.AbsoluteUri); 

Use el método de location.reload () de JavaScript.

  

Si no desea realizar una actualización de página completa, ¿qué le parece envolviendo lo que desea actualizar dentro de un UpdatePanel y luego hacer una devolución de datos asincrónica?

Hay varios métodos para actualizar la página en asp.net como …

Java Script

  function reloadPage() { window.location.reload() } 

Código detrás

 Response.Redirect(Request.RawUrl) 

Meta Tag

  

Redirección de página

 Response.Redirect("~/default.aspx"); // Or whatever your page url 

Personalmente, necesito asegurarme de que la página mantiene el estado, de modo que todos los cuadros de texto y otros campos de entrada conservan sus valores. al hacer la actualización de meta es como una publicación nueva, IsPostBack siempre es falso, por lo que todos sus controles están en el estado inicializado de nuevo. Para conservar el estado, ponga esto al final de su Page_Load (). cree un botón oculto en la página con un evento enlazado, algo así como actualizar con el evento peroRefresh_Click (…). Este código establece un temporizador en la página para activar una devolución de datos al igual que un usuario hizo clic en el botón de actualización. todo el estado y la sesión se conservan. ¡Disfrutar! (PD: puede que necesite colocar la directiva en el encabezado @Page EnableEventValidation = “false” si recibe un error en la devolución de datos.

 //tell the browser to post back again in 5 seconds while keeping state of all controls ClientScript.RegisterClientScriptBlock(this.GetType(), "refresh", ""); 

No puedes hacer eso. Si usa una redirección (o cualquier otra técnica de servidor), nunca enviará la página real al navegador, solo las páginas de redirección.

Para ello, debe usar una metaetiqueta o JavaScript, de modo que pueda volver a cargar la página una vez que se haya mostrado durante un tiempo:

 ScriptManager.RegisterStartupScript(this, GetType(), "refresh", "window.setTimeout('window.location.reload(true);',5000);", true); 

En tu page_load , agrega esto:

 Response.CacheControl = "no-cache"; Response.AddHeader("Pragma", "no-cache"); Response.Expires = -1; 
 Response.Write(""); 

Puede usar 2 formas para resolver este problema: 1) Después de la etiqueta de la cabeza

    

2) Si su página no tiene etiqueta de cabecera, debe usar Javascript para implementar

  

Mi contacto:

http://gola.vn

La única forma correcta en que podía actualizar la página era a través de JavaScript, muchas de las principales respuestas de .NET fallaron.

 Response.Write(""); 

Coloque el código anterior en el evento de clic de botón o en cualquier lugar que desee forzar la actualización de la página.