2012-12-21 15 views
6

Jak odświeżyć i ponownie załadować stronę bez ponownego wysyłania danych POST?Odśwież stronę, bez ponownego wysyłania danych POST (ASP.NET)

Próbowałem location.reload(), który działa absolutnie dobrze na Chrome (który był środowiskiem testowym podczas rozwoju). Ale IE i Firefox weszły w Infinite Loop w JS - odświeżając dużo śmieci/duplikatów danych.

Uwaga: Chcę jednak odświeżyć stronę, aby wyczyścić całą treść formularza. Zarejestruję również skrypt startowy po wysłaniu, który wyświetli komunikat ostrzegawczy, że dane zostały pomyślnie dodane.

POMOC!

+0

Czy publikujesz stronę normalnie, czy poprzez JavaScript/AJAX? –

Odpowiedz

6
location.href = location.href + '?' + Math.random(); 

To powinno zadziałać.

+0

+1, ale musisz też sprawdzić, czy "?" wszystko gotowe istnieje na href. – Aristos

13

Spróbuj tego:

window.location.href = window.location.href; 
+1

Dzięki. Bardzo mi to pomogło. – ShaileshDev

4

w kodzie dodatku:

Response.Redirect(Request.RawUrl) 
2

Jeśli tylko chcesz wyczyścić formularz, czemu nie:

<input type="reset" value="Clear Fields"> 

Można również zrobić użycie:

document.getElementById('<%=form1.ClientID%>').reset(); 

Wygląda na to, że można przeładować stronę, chyba że musisz zrobić jeszcze coś.

+0

@Aristos - Dzięki i dobry punkt, zaktualizowałem mój post. – webnoob

1

Dodaj następujący:

Server.Transfer(Request.RawUrl);

1

Poniższa rozwiąże problemu:

Server.Transfer(Request.RawUrl); 
0

korzystanie location.reload(true). To "twarde" przeładowuje stronę ..

0

Próbowałem też załadować ponownie i załadować ponownie (prawda), nie robiąc dokładnie tego, co chciałem.

widziałem tej lokalizacji obiektu mają innego sposobu (niż reload) ponieważ chciałem zwrócić się w stronę „get” Właśnie tak:

location.assign(window.location); 

Jak dotąd wydaje się, że robi to, co chcę, ponownie załaduj tę samą stronę bez ponownego przesyłania wartości. Mój przypadek użycia to połączenie ajaxowe z serwerem po wygaśnięciu sesji. Wyświetlam komunikat o błędzie informujący, że sesja została utracona, a następnie chcę przeładować stronę.

Powiązane problemy