2009-06-29 8 views
1

どのように私はsharepointからページにリダイレクトできますか?リダイレクトコードがitemreceiverで動作しない

私はリストのためのitemaddedイベントレシーバー内にこれを持っている:それは、リストの項目が追加された任意のリダイレクトを行うdoes notのよう

SPUtility.Redirect("http://mysite", SPRedirectFlags.Default, HttpContext.Current); 

が、HttpContext.Currentをデバッグするにはnullです。

答えて

6

ItemAddedイベントは非同期に発生します(アイテムが追加された後のいつか)。現在のリクエストのHttpContextにアクセスできない別のスレッドで実行されているため、リダイレクトするためにユーザーのブラウザに応答を送信することができなくなります。

これは、ItemAddingイベントレシーバーで機能する可能性があります。これは、アイテムをリストに追加するスレッドと同じスレッドで実行されます。私はリダイレクトを実行するのが安全であるとは確信していません。SharePointで他の基礎となるコードが実行されない可能性があるからです。

これはLars Fastrup in one of your previous questions (redirect using itemreceiver sharepoint)によってエコーされました。彼が推奨するソリューションを実装することを検討してください。

+0

完璧な答えです。 ItemEventReceiversが非同期的に発生するのを見ると、理論上、ユーザーがすでに何か他のことをしている間に30秒後にリダイレクトされる可能性があります。突然彼が別のページで自分を見つけたとき、彼の顔を想像してください: - P – Colin

関連する問題