Okk, ultimo tentativo da parte mia, poi se non funziona spero ti risponda qualcun'altro più esperto..
L'unico metodo che mi è venuto in mente è il seguente:
Pagina 1: Salvi i dati di cui vuoi fare il POST nella session. Poi apri una nuova pagina con window.open.
Session["dati_da_postare"] = "CIAO!";
//Sto aprendo la pagina Default2.aspx
string Script_4 = "window.open('Default2.aspx','','',null);";
string MyKey = "KeyScript_1";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), MyKey, Script_4, true);
Pagina 2:Questa pagina è solo di appoggio, è lei che si occupa di postare i dati.
Per prima cosa recupera i dati dalla sessione e li riutilizza:
protected void Page_Load(object sender, EventArgs e)
{
if( Session["dati_da_postare"]!=null)
{
string dati_da_postare = Session["dati_da_postare"].ToString();
Session.RemoveAll();
TextBox1.Text = dati_da_postare;
}
}
Nella parte aspx invece,
Così effettua sul caricamento della pagina il POST ad una nuova pagina "Default3.aspx", che è quella a cui vuoi fare arrivare in definitiva il POST.
Ho provato la cosa ed effettivamente la stringa originale arriva all'ultima pagina, e le pagine hanno il comportamento che mi hai descritto.
Spero che sia chiaro.
Lo so che è un metodo un po' del cazzo, ma migliori non me ne sono venuti in mente, più che altro a seconda di quello che devi mandare alla pagina, può essere abbastanza noioso.
Fammi sapere in ogni caso se la cosa ti va bene..
Ciao