簡體   English   中英

ASP.NET/SharePoint母版頁問題

[英]ASP.NET/SharePoint master page issue

我正在使用SharePoint Server 2007 + C#+ .Net 3.5 + VSTS 2008 + ASP.Net。 我正在使用協作門戶模板。

我正在開發一個自定義aspx頁面,並將其放在網站的_layout文件夾中,我想將SharePoint網站的default.master應用於此aspx頁面。 關於如何實現此目標的任何樣本?

如果使用SharePoint Designer,則可以右鍵單擊頁面,然后選擇要應用的母版頁。

您可以將代碼放在PreInit事件中,以使您的自定義頁面使用當前網站的母版頁。

protected override void OnPreInit(EventArgs e)
{
 base.OnPreInit(e);
 SPWeb myWeb = SPControl.GetContextSite(Context).OpenWeb();
 string strUrl = myWeb.ServerRelativeUrl + "/_catalogs/masterpage/my.master";
 this.MasterPageFile = strUrl;
}

或使用default.master替換my.master以便使用默認的母版頁。 或檢查spweb的MasterUrl屬性,然后改用它。

無論哪種方式,它都可以使您朝正確的方向前進。

最好的方法是使用HttpModule。 這使您可以將自定義母版頁用於所有應用程序頁面(即LAYOUTS文件夾中的頁面)。 可以使用功能對其進行部署,並且可以針對每個Web應用程序進行激活(請參閱http模塊需要在Web應用程序范圍內的web.config中進行注冊。)

通過使其成為網絡應用程序,您的最終用戶將獲得統一的用戶體驗,而不是看起來像網站前端的單個頁面,而其他所有(開箱即用的)應用程序頁面仍在使用默認共享點應用程序。主。

有關代碼示例和更深入的說明,請參見此處

PS:由於缺少內容占位符,因此使用上面的代碼會出現錯誤。 您需要創建自定義母版頁的副本。 盡管樣式可以相同,但是應用程序頁面比前端母版頁面使用更多/其他ContentPlaceHolders。

只需復制您的自定義母版頁,將其從CustomMaster.master重命名為,例如CustomMasterEdit.master,並將其用於應用程序頁面樣式,SharePoint就會拋出錯誤,告訴您缺少哪些占位符,繼續添加所需的占位符,直到頁面正常工作為止(我認為需要2或3個額外的占位符)。

PPS要使有意義的共享點顯示錯誤,請轉到web.config並查找<SharePoint>標記,並將callstack屬性從false更改為true 然后,查找customErrors標記並將mode屬性設置為"off" 若要完全啟用調試,還可以啟用ASP.NET跟蹤。 當然,您不應該在生產環境中這樣做。

此處可以找到有關修改web.config以使共享點顯示真實錯誤消息的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM