2009-06-29 20 views
1

如何重定向到sharepoint的頁面?重定向代​​碼不能在itemreceiver中工作

我有這樣的一個列表itemadded事件接收器內:

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

但調試HttpContext.Current是空,因此它沒有做任何重定向時添加列表項。

回答

6

ItemAdded事件異步發生(即添加項目後的某個時間)。它在一個單獨的線程上執行,它無法訪問當前請求的HttpContext(因此您將無法發送響應來通知用戶的瀏覽器重定向)。

這可能在ItemAdding事件接收器中工作 - 它在將項目添加到列表的同一個線程上執行。我不確定執行重定向是否安全,因爲它可能會阻止其他底層代碼在SharePoint中執行。

這得到了Lars Fastrup in one of your previous questions (redirect using itemreceiver sharepoint)的迴應。考慮實施他在那裏推薦的解決方案。

+0

完美答案。看作ItemEventReceivers是異步發生的,理論上講,在他已經做了其他事情之後,用戶在30秒之後被重定向是可能的。想象一下他突然間發現自己在不同的頁面上時的臉龐:-P – Colin 2009-06-29 09:25:19