Σε συνέχεια της απάντησης του Σωτήρη, σημείωσε και τα εξής:
1. Χρησιμοποιώντας το <BASE target="_self"> θα σε καλύψει όταν ο διάλογος που ανοίγεις πρέπει να κάνει κάτι και να επιστρέψει στον εαυτό του. Δεν θα μπορέσεις να τον κλείσεις από τέτοιο (Web Form κουμπί) και να επιστρέψεις σε άλλη σελίδα
2. Εάν χρειάζεσαι την δυνατότητα να κλείσεις τον διάλογο και να επιστρέψεις στην "κύρια σελίδα" (δηλαδή ο διάλογος - person.aspx - χρησιμοποιείται για λειτουργίες επεξεργασίας μιάς "personList.aspx" και πρέπει να κλείσει, πατώντας σε κουμπιά τύπου Οκ/Άκυρο/Ενημέρωση, τότε το σενάριο είναι λίγο πιό πολύπλοκο.
Συνοπτικά:
- η "personList.aspx", ανοίγει τον διάλογο με χρήση HTMLButton & client-side script (showModalDialog(...), περνώντας απαραίτητες παραμέτρους στο query string)
- η "person.aspx" κάνει ότι κάνει (με χρήση <BASE> tag, για ότι πρέπει να επιστρέφει σε αυτήν) και χρησιμοποιεί HTMLButton & client-side script για τα κουμπιά επιστροφής (Ok/Update/Cancel) βάζοντας και την τιμή που πρέπει να επιστρέψει (.. window.dialogResult=theResult; window.close(); ..)
- η "personList.aspx", παρκάρει το theResult (ακριβώς μετά την κλήση στο showModalDialog(...), σε ένα HTMLInputHidden, ας το πούμε dlgResult) και κάνει submit στον εαυτό της για περαιτέρω επεξεργασία [με ένα window.Form1.submit()]
- Εάν η επεξεργασία ολοκληρωθεί επιτυχώς, καθαρίζεται το dlgResult και όλα ΟΚ
- Εάν προκύψει σφάλμα (π.χ. database error), τότε, από το code-behind file, που περιέχει τον κώδικα επεξεργασίας, τοποθετείται το μήνυμα σφάλματος (και, οι τιμές που το προκάλεσαν) στο dlgResult. Η επεξεργασία τελειώνει και γίνεται το postback
- Τέλος, η "personList.aspx" έχει και client-side script στο window_onLoad(). Αυτό, κοιτάει το dlgResult και, εάν δει μήνυμα σφάλματος, ανοίγει αυτόματα το "person.aspx", με τις τιμές που προκάλεσαν το σφάλμα και βέβαια το μήνυμα σφάλματος.
Απλούστατο... Διατίθεται και κώδικας για δείγμα

Άρης
Aris