Cómo puedo actualizar la página en ASP.NET? (Que se recarga por código)


¿Cómo puedo actualizar una página en ASP.NET? (Que se recarga por código)

Prefiero no usar Respuesta.Redirect() porque no sé si la página en la que estaré, ya que está dentro de un control de usuario dentro de un webpart dentro de sharepoint.

 142
Author: xpda, 2009-07-30

13 answers

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

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

La segunda es una Meta etiqueta:

<meta http-equiv="refresh" content="600">

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

 44
Author: Ariel Popovsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-30 13:25:54

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

  Response.Redirect(Request.RawUrl);    

Eso asegura que la página se vuelva a cargar, y funciona bien desde un control de usuario. Se usa RawUrl y no Request.Url.AbsoluteUri para conservar cualquier parámetro GET que pueda incluirse en la solicitud.

Probablemente no quieras usar: __doPostBack, ya que muchas páginas aspx se comportan de manera diferente al hacer un postback.

 367
Author: chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-14 00:55:31

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);

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

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

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

 36
Author: dicemaster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-29 18:06:54

Prueba esto:

Response.Redirect(Request.Url.AbsoluteUri);
 35
Author: Andrew Hare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-30 13:16:06

Utilice la ubicación de javascript .método reload () .

<script type="text/javascript">
  function reloadPage()
  {
    window.location.reload()
  }
</script>
 12
Author: jrummell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-30 13:24:13

Si no desea hacer una actualización de página completa, entonces ¿qué tal empaquetar lo que desea actualizar dentro de un UpdatePanel y luego hacer un postback asincrónico?

 6
Author: Bryan Denny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-30 13:22:16

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

Java Script

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

Código detrás de

Response.Redirect(Request.RawUrl)

Meta Tag

<meta http-equiv="refresh" content="600"></meta>

Redirección de la página

Response.Redirect("~/default.aspx"); // Or whatever your page url
 6
Author: Sunil Acharya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-20 14:38:07

Personalmente necesito asegurarme de que la página mantenga el estado, para que todos los cuadros de texto y otros campos de entrada conserven sus valores. al hacer meta refresh es como un nuevo post, IsPostBack siempre es false por lo que todos sus controles están en el estado inicializado de nuevo. Para conservar el estado pon esto al final de tu Page_Load(). crea un botón oculto en la página con un evento conectado, algo así como butRefresh con event butRefresh_Click(...). Este código establece un temporizador en la página para disparar un postback al igual que un el usuario hizo clic en el botón actualizar ellos mismos. se conserva todo el estado y la sesión. ¡Que lo disfrutes! (P.d. es posible que necesite poner la directiva en el encabezado @ Page EnableEventValidation= "false" si recibe un error en postback.

//tell the browser to post back again in 5 seconds while keeping state of all controls
ClientScript.RegisterClientScriptBlock(this.GetType(), "refresh", "<script>setTimeout(function(){ " + ClientScript.GetPostBackClientHyperlink(butRefresh, "refresh") + " },5000);</script>");
 3
Author: JJ_Coder4Hire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-14 03:30:42

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.

Tiene que usar una meta etiqueta o JavaScript para hacer esto, de modo que pueda volver a cargar la página después de que se haya mostrado durante un tiempo:

ScriptManager.RegisterStartupScript(this, GetType(), "refresh", "window.setTimeout('window.location.reload(true);',5000);", true);
 2
Author: Guffa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-13 03:48:48

En su page_load, agregue esto:

Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;
 2
Author: sjehutch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-05 22:46:30
Response.Write("<script>window.opener.location.href = window.opener.location.href </script>");
 1
Author: farhana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-15 11:58:12

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

<head> 
<meta http-equiv="refresh" content="600">
</head>

2) Si tu página no tiene head tag debes usar Javascript para implementar

<script type="text/javascript">
  function RefreshPage()
  {
    window.location.reload()
  }
</script>

Mi contacto:

Http://gola.vn

 1
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-14 07:15:55

La única forma correcta de actualizar la página fue a través de JavaScript, muchas de las respuestas principales de.NET fallaron para mí.

Response.Write("<script type='text/javascript'> setTimeout('location.reload(true); ', timeout);</script>");

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

 1
Author: Hammad Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-12 16:47:20