マイページに送信ボタン(サーバー側ボタン)があります。
クリックイベントのコードは次のとおりです。
protected void SubmitButton_Click(object sender, EventArgs e)
{
db.SaveSomething();
Page.ClientScript.RegisterStartupScript("someScriptWhichReliesOnServerData");
Response.Redirect("SomeOtherPage.aspx");
}
さて、問題は、を使用して JavaScript を登録することですがPage.ClientScript.RegisterStartupScript、ポストバック (スクリプトが実行される場所) でページが再レンダリングされないため、代わりに aResponse.Redirectが発生するため、これは効果がありません。
私が考えることができる唯一の解決策は、QueryString、HttpContext.Current.Items、または(gulp)Sessionなど、JavaScriptを実行しようとしていることを「認識」するようにリダイレクトするページを作成することです。
- QueryString - 実行しようとしている JavaScript であるため、オプションではありません。
- HttpContext.Current.Items - Response.Redirect を実行しているため、これもオプションではありません (これにより、要求レベルのデータが失われます。これは、URL 書き換えではうまくいかないため、Server.Transfer も使用できません)。
- セッション - もちろん、理想的ではありません。
他のアイデア/提案はありますか?
明確化のための編集:
実行中の JavaScript は、ユーザーのウォールに公開するための Facebook クライアント側 API の呼び出しです。クライアント側で行う必要があります。「タイトル」、「メッセージ」、「アクション リンク」などをスクリプトに渡します。基本的には JSON の束です。ただし、ここで重要なのは、このデータがポストバックで作成されるため、クライアント側のクリックでこの関数を実行することはできません。
したがって、私が達成しようとしているのは、送信ボタンのクリック、JavaScriptの実行、およびリダイレクトの実行です(この順序である必要はありません。両方が発生する必要があります)。