Gibt es eine Möglichkeit Abfrage-Strings, ohne zu brechen ein ASP.Net Postbacks zu ändern?

stimmen
1

hier und um das Netz aus der Lektüre, ich bin in der Nähe, die Antwort zu der Annahme „nein“, aber ...

Lassen Sie uns sagen, dass ich eine ASP.Net-Seite, die manchmal eine Abfrage-String-Parameter hat. Wenn die Seite, die Query-String-Parameter hat, will ich es vor abzustreifen, während oder nach dem Postback. Die Seite hat bereits eine Menge von Client-seitiges Script (reine JavaScript und jQuery).

Als ein Beispiel, sage ich zu laden:

http://myPage.aspx?QS=ABC

Der QS - Parameter ist notwendig , zu kontrollieren , was auf der Seite angezeigt wird, wenn es zum ersten Mal geladen und von der Seite gesetzt ist , dass „ruft“ es. myPage.aspxhat Form Elemente , die in und einreichen muss ausgefüllt werden müssen Schaltfläche , die ein Postback funktioniert. Wenn die Seite das Postback abgeschlossen ist , muss ich zurück URL sein:

http://myPage.aspx

um den clientseitigen Code zu vermeiden, wenn der Query-String vorhanden ist, aufgerufen wird. Mit anderen Worten, nach einem übermittelt ich mit den Abfrage-String-Parametern Feuer zugeordnet nicht die Client-Seite Aktionen will. Ich weiß, ich konnte die Formularinhalte an die URL anhängen als Query-String Parameter selbst und nur auf die neue URL umleiten und die einreichen / Postbacks zu vermeiden, aber das wird viel mehr Typ auf der Code-Behind-Überprüfung erfordern schlechte Daten und lässig-Spoofing zu vermeiden. Ich sollte ich könnte auch ein verstecktes Feld in dem Code-Behind gesetzt und es betrachte zusammen mit dem Query-String des clientseitige Verhalten zu stornieren, wenn ich zurück von der Postbacks käme, aber das läßt noch den Query-String intakt im Grunde für immer und ich möchte befreien sie sich von ihm nach dem ersten laden der Seite zu bekommen.

Irgendwelche Ideen oder Best Practices?

PS - Gibt es etwas, das ich mit der Form.Action Eigenschaft tun kann, die das Postback Verhalten werden nicht brechen?

Veröffentlicht am 09/12/2008 um 16:44
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
2

Ich würde eine Verwendung Httpmodule abfangen und die URL und Abfrage neu schreiben , wie es kam. Ich bin nicht 100%, aber ich glaube nicht , dass dies keine Auswirkungen mit Ansichtszustand hat.

Es klingt (und sieht) komplex, aber es ist eigentlich ziemlich trivial und offen für eine Tonne Verfeinerung und Erweiterung (per .NET im Allgemeinen).

Beantwortet am 09/12/2008 um 17:42
quelle vom benutzer

stimmen
1

iam nicht sicher, ob dies ist, was Sie suchen, aber wenn das richtig verstanden, könnten Sie dies tun:

-auf Seite Lastprüfung für den QS-Wert, wenn es nicht dort verwenden, um ein verstecktes Eingabefeld.

-first Zeit Seite geladen mit QS, tun Sie Ihre normale Verarbeitung und Speicherung von QS-Wert in einem verborgenen Eingabefeld.

-wenn keine QS dann den versteckten Eingabewert verwenden

-nach Postbacks, können Sie auf die gleiche Seite, an diesem Punkt erstellen Sie könnten Benutzer Request.Form [], um das verborgene Eingabefeld abzurufen, noch die Daten richtig laden, aber die Beseitigung der QS bekommen.

machte es Sinn, in meinem Kopf, ich bin nicht sicher, ob es Sinn, jetzt, aber ich lasse Sie entscheiden.

Beantwortet am 09/12/2008 um 17:34
quelle vom benutzer

stimmen
1

Es ist wahrscheinlich eine schlechte Praxis, aber in den Fällen (und denen, die ich brauche nur die Seite ‚Reset‘), kann ich einfach eine Response.Redirect auf der gleichen Seite.

Beantwortet am 09/12/2008 um 16:47
quelle vom benutzer

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