Αυτό που θέλεις να κάνεις είναι url rewriting. Στο Global.asax αρχείο, στο Application_BeginRequest event, μπορείς να χρησιμοποιήσεις την Context.RewritePath(NewUrl). Έτσι μπορείς να αλλάξεις, όχι μόνο τα query strings αλλά και το aspx αρχείο το οποίο θα τρέξει τελικά.
Αυτή τη διαδικασία δεν μπορείς να την κάνεις αν αρχίσει να εκτελείται μία σελίδα, πρέπει να γίνει στο Application_BeginRequest event.
Ρίξε μια ματιά σε αυτό το άρθρο http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx, το οποίο εξηγεί πως μπορείς να χρησιμοποιήσεις την Context.RewritePath() για url rewriting.
Επίσης, δώσε λίγη προσοχή στα postbacks. Λογικά, όταν θα κάνεις ένα postback θα εμφανίζεται το τροποποιημένο url, οπότε πολλά συνεχόμενα postbacks θα σου δημιουργήσουν ένα παλαβό url. Για να το αντιμετωπίσεις, πρέπει να υλοποιήσεις έναν ControlAdapter, τον οποίο (αν θυμάμαι καλά) θα τον βρεις έτοιμο στο άρθρο αυτό ή σε ένα άρθρο που λινκάρει.
Αν δεν το βρίσκεις, πες μου να σου κάνω post τον κώδικα
Τάσος Καραγιάννης
Baby debugging steps...