Υπάρχει κάποιος τρόπος για να τροποποιήσετε χορδές ερώτημα χωρίς να σπάσει ένα postback ASP.Net εκεί;

ψήφοι
1

Από την ανάγνωση εδώ και γύρω από το δίχτυ, είμαι κοντά στην παραδοχή ότι η απάντηση είναι «όχι», αλλά ...

Ας πούμε ότι έχετε μια σελίδα ASP.Net που μερικές φορές έχει μια παράμετρο συμβολοσειράς ερωτήματος. Αν η σελίδα έχει την παράμετρο συμβολοσειράς ερωτήματος, θέλω να το αφαιρεί πριν, κατά τη διάρκεια ή μετά την καταχώρηση προς τα πίσω. Η σελίδα έχει ήδη μια πολύ client-side script (καθαρή JavaScript και jQuery).

Για παράδειγμα, να πω ότι η φόρτωση:

http://myPage.aspx?QS=ABC

Η παράμετρος QS είναι απαραίτητο να ελέγχουν τι εμφανίζεται στην σελίδα που φορτώνεται και καθορίζεται από τη σελίδα που «καλεί» το. myPage.aspxέχει μορφή τα στοιχεία που πρέπει να συμπληρωθούν και να έχει ένα κουμπί υποβολής που κάνει μια καταχώρηση προς τα πίσω. Όταν η σελίδα συμπληρώνει την καταχώρηση προς τα πίσω, θα πρέπει να επιστρέψει URL να είναι:

http://myPage.aspx

προκειμένου να αποφευχθεί ο κωδικός υπολογιστή-πελάτη που καλείται όταν η συμβολοσειρά ερωτήματος είναι παρούσα. Με άλλα λόγια, μετά από υποβολή Δεν θέλω την πλευρά του πελάτη ενέργειες που σχετίζονται με την παράμετρο συμβολοσειράς ερωτήματος στη φωτιά. Ξέρω ότι θα μπορούσε να προσαρτήσει τα περιεχόμενα μορφή στη διεύθυνση URL ως συμβολοσειρά ερωτήματος παραμέτρων τους και απλά ανακατευθύνει στη νέα διεύθυνση και να αποφύγει την υποβολή / καταχώρηση προς τα πίσω, αλλά αυτό θα απαιτήσει πολύ περισσότερο του τύπου έλεγχο σχετικά με την codebehind να αποφευχθεί η κακή δεδομένων και casual πλαστογράφηση. Θα έπρεπε Θα μπορούσα επίσης να ορίσετε ένα κρυφό πεδίο στο codebehind και να εξετάσουμε μαζί με το κορδόνι ερώτημα για να ακυρώσετε την πλευρά του πελάτη συμπεριφορά, αν έρχομαι πίσω από την καταχώρηση προς τα πίσω, αλλά αυτό εξακολουθεί να αφήνει τη συμβολοσειρά ερωτήματος άθικτο ουσιαστικά για πάντα και θέλω για να απαλλαγούμε από αυτό μετά την αρχική φόρτωση της σελίδας.

Οποιεσδήποτε ιδέες ή τις βέλτιστες πρακτικές;

PS - Υπάρχει κάτι που μπορώ να κάνω με την ιδιότητα Form.Action που δεν θα σπάσει τη συμπεριφορά postback εκεί;

Δημοσιεύθηκε 09/12/2008 στις 16:44
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
2

Θα χρησιμοποιήσετε ένα HttpModule να παρακολουθήσει και να ξαναγράψουμε το URL και το ερώτημα, όπως ήταν αρχικά. Δεν είμαι 100%, αλλά δεν πιστεύω ότι αυτό έχει κάποια επίδραση με viewstate.

Ακούγεται (και φαίνεται) πολύπλοκο, αλλά στην πραγματικότητα είναι αρκετά ασήμαντο και ανοιχτή σε έναν τόνο της βελτίωσης και της επέκτασης (σύμφωνα με το .NET γενικά).

Απαντήθηκε 09/12/2008 στις 17:42
πηγή χρήστη

ψήφοι
1

iam δεν είναι σίγουρος αυτό είναι αυτό που ψάχνετε, αλλά αν κατάλαβα καλά θα μπορούσατε να το κάνετε αυτό:

-σε έλεγχος του φορτίου σελίδα για την αξία QS, αν του δεν χρησιμοποιούν υπάρχει ένα κρυφό πεδίο εισαγωγής.

-πρώτο χρόνο φορτία σελίδα με QS, κάνει κανονική επεξεργασία και αποθήκευση της τιμής QS σε ένα κρυφό πεδίο εισαγωγής.

-εάν δεν QS στη συνέχεια χρησιμοποιήστε την κρυμμένη αξία των εισροών

-μετά postback, θα μπορούσε να ανακατευθύνει στην ίδια σελίδα, σε εκείνο το σημείο θα μπορούσε χρήστη Request.Form [] για να ανακτήσετε το κρυφό πεδίο εισαγωγής, εξακολουθούν να φορτώσετε τα δεδομένα σωστά, αλλά να απαλλαγούμε από την QS.

ήταν λογικό μέσα στο κεφάλι μου, δεν είμαι σίγουρος ότι έχει νόημα τώρα, αλλά εγώ θα σας αφήσει να αποφασίσει.

Απαντήθηκε 09/12/2008 στις 17:34
πηγή χρήστη

ψήφοι
1

Είναι μάλλον κακή πρακτική, αλλά σε αυτές τις περιπτώσεις (και αυτά που απλά πρέπει να «επαναφορά» της σελίδας), εγώ απλά κάνω μια Response.Redirect στην ίδια σελίδα.

Απαντήθηκε 09/12/2008 στις 16:47
πηγή χρήστη

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