※以下の内容、なにか僕が勘違いしていたというか、ちゃんと普通にリダイレクトはよしなに扱ってくれていることに気が付きました。詳細は、
非同期ポストバック時でもリダイレクトはよしなにしてくれます。(僕が狂ってた) - 三日坊主と呼ばせない!日記
を参照のこと。
とりあえず、現在、出来そうで出来ない……というか、出来そうに思えるけど本当に出来るかどうかが良く解らないのが、『非同期ポストバック時の全面書き換え(というかリダイレクト)』。
例えば、ボタン押下で非同期ポスストバックを発生させ、ボタンのClickイベントハンドラ内ので処理結果によって、そのまま同一のASPXの部分書き換えを行うか、別のASPXにリダイレクトするかを分岐させたい場合等。
MSDNでScriptManagerクラスのメンバを色々眺めてみたものの、何となくできなさそうな感じに思えています。
例外発生の場合、Web.ConfigのcustomErrorsをOnにすれば指定したファイルにリダイレクトしてくれるし、その上でGlobal.asaxのApplication_Error内で独自に処理してからのリダイレクトなんかもちゃんと動いてくれるので、何か遣りようが有るように思える*1のですが、どうなんでしょう。
とりあえず、RegisterClientScriptBlockでlocation.hrefするようなJavascriptのコードを書き出せば似たようなことも出来るのですけど、せっかくここまでJavascriptを隠蔽してくれてるんだkら、これくらいさせてくれても良さげなもんでは、と思って、今だイジイジしていたり。
*1:ユーザに公開されているかどうかは別としてASP.NET AJAXの作り的には