我的問題是重定向: 2010年SharePoint用戶後創建網站,首先我需要用戶重定向到我的自定義網頁,而不是用戶重定向到新的網站網址。SharePoint 2010中從事件接收器(創建網站後)
我創建的事件reciever網頁和創建到我的網頁上重定向使用SPUtility.Redirect()後試圖網站:
public class MySiteEventReceiver : SPWebEventReceiver
{
public override void WebProvisioned(SPWebEventProperties properties)
{
var web = properties.Web;
base.WebProvisioned(properties);
string url = web.Site.Url + "/_LAYOUTS/MyPage.aspx";
SPUtility.Redirect(url, SPRedirectFlags.CheckUrl, HttpContext.Current);
}
}
但始終HttpContext.Current爲null。
我一直在尋找我的問題在intrnet的解決方案。而且我發現它:http://www.sharepointkings.com/2008/05/httpcontext-in-eventhandler.html
我做到了:
public class MySiteEventReceiver : SPWebEventReceiver
{
private static HttpContext oContext;
public SubSiteEventReceiver() : base()
{
if (oContext == null)
{
oContext = HttpContext.Current;
}
}
public override void WebProvisioned(SPWebEventProperties properties)
{
var web = properties.Web;
base.WebProvisioned(properties);
string url = web.Site.Url + "/_LAYOUTS/MyPage.aspx";
SPUtility.Redirect(url, SPRedirectFlags.CheckUrl, oContext);
}
}
之後的HttpContext是不是空
<Synchronization>Synchronous</Synchronization>
(我的WebProvisioned性能同步設置),但在這種情況下,我得到錯誤「無法評估表達式,因爲代碼已經優化或者本機框架位於調用堆棧之上」。
我也試圖去重定向的另一種方式。 http://sharesilver.wordpress.com/2011/07/24/sharepoint-bugs-1-item-deleting-event-receiver/
但在這種情況下也沒有什麼不工作。
我將是任何試圖幫助感激不盡!
如果你能正確地獲取上下文,然後,而不是使用SPUtility.Redirect的,你可以嘗試oContext.Response.Redirect(「URL」,假的),第二個參數(假)很重要 – Mac