Czy jest jakiś sposób zmodyfikować ciągi kwerend bez zerwania odświeżenie strony ASP.NET?

głosy
1

Od czytania tutaj i wokół netto, jestem blisko zakładając, że odpowiedź brzmi „nie”, ale ...

Załóżmy, że mam strony ASP.NET, że czasami ma parametr ciąg kwerendy. Jeśli strona ma parametru ciąg kwerendy, chcę się rozebrać go przed, w trakcie lub po odświeżenie strony. Strona ma już dużo skrypt po stronie klienta (czysty JavaScript i jQuery).

Jako przykład, powiedzmy załadować:

http://myPage.aspx?QS=ABC

Parametr QS jest niezbędne do kontrolowania tego, co pojawia się na stronie, gdy pierwsze ładunki i jest ustalana przez strony, że „nazywa” go. myPage.aspxposiada elementy formularzy, które należy wypełnić i ma przycisk Prześlij, który nie odświeżenie strony. Gdy strona uzupełnia odświeżenie strony, muszę być zwrócony do adresu URL:

http://myPage.aspx

w celu uniknięcia kodu po stronie klienta, która jest wywoływana, gdy łańcuch zapytania jest obecny. Innymi słowy, po przedstawienia nie chcę działania niepożądane związane z klientem parametru ciąg kwerendy na ogień. Wiem, że mogę dołączyć zawartość formularza na adres URL jako parametry się łańcuch zapytania i po prostu przekierować do nowego adresu URL i uniknąć dołączania / odświeżenie strony, ale to będzie wymagało dużo więcej typ sprawdzania w kodzie, aby uniknąć złych danych i dorywczo spoofing. Mam mogę też ustawić pole ukryte w kodzie i patrzeć na nią wraz z ciągiem znaków zapytania, aby anulować zachowania po stronie klienta, gdy wracam z odświeżenie strony, ale nadal pozostawia ciąg kwerendy w stanie nienaruszonym w zasadzie zawsze i chcę aby pozbyć się go po początkowym załadowaniu strony.

Wszelkie pomysły i najlepsze praktyki?

PS - Czy mogę coś zrobić z nieruchomości Form.Action że nie złamie zachowanie ogłaszania zwrotnego?

Utwórz 09/12/2008 o 16:44
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
2

Chciałbym użyć HttpModule do przechwycenia i przepisać URL i zapytać, jak się pojawiła. Ja nie jestem w 100%, ale nie wierzę, to nie ma żadnego wpływu ze stanu wyświetlania.

To brzmi (i wygląda) skomplikowane, ale w rzeczywistości jest dość trywialne i otwarty na tonę udoskonalenia i rozszerzenia (zgodnie .NET w ogóle).

Odpowiedział 09/12/2008 o 17:42
źródło użytkownik

głosy
1

IAM nie wiem, to jest to, czego szukasz, ale jeśli rozumiem można to zrobić:

-on sprawdzić obciążenie aktualizacja wartości QS, jeśli jej nie ma użyć ukrytego pola wprowadzania.

-pierwsze czas ładowania strony z QS, zrobić swoje normalne przetwarzanie i przechowywanie wartości QS w polu wejściowym ukrytym.

-Jeśli nie ma QS następnie użyj ukrytej wartości wejściowej

-po odświeżenie strony, można przekierować do tej samej strony, w tym momencie można użytkownik Request.Form [], aby odzyskać pole wprowadzania ukryty, nadal załadować dane poprawnie, ale pozbyć się QS.

to miało sens w mojej głowie, nie jestem pewien, że to ma sens teraz, ale ja nie pozwolę ci zdecydować.

Odpowiedział 09/12/2008 o 17:34
źródło użytkownik

głosy
1

Prawdopodobnie jest złą praktyką, ale w tych przypadkach (i jedynek po prostu trzeba „reset” strony), po prostu zrobić Response.Redirect do tej samej strony.

Odpowiedział 09/12/2008 o 16:47
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more