2010-01-27 49 views
0

我有一個SharePoint 2007服務器,並且想要創建一個嵌套主頁的網站。SharePoint中的嵌套MasterPage無法正常工作

我創建了一個新的母版頁,test.master:

<%@ Master MasterPageFile="~masterurl/default.master" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="PlaceHolderMain" runat="server"> 
    Test123 
    <b> 
    <asp:ContentPlaceHolder runat="server" ID="TestPH" Visible="true" /> 
    </b> 
</asp:Content> 

然後我創建了一個新的頁面,Test.aspx的

<%@ Page MasterPageFile="test.master" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="TestPH" runat="server"> 
    TestChild 
    <asp:Label Text="Test" runat="server" /> 
</asp:Content> 

我上傳既test.master和Test.aspx的到一個新創建的使用SharePoint Designer的空白網站。

當我調用Test.aspx時,我只能從test.master看到Test123 - 它似乎忽略了佔位符。 HTML輸出(包括從SharePoint default.master摘錄):

<td class='ms-bodyareaframe' valign="top" height="100%"> 
    <A name="mainContent"></A> 
    Test123 
    <b> 

    </b> 
</td> 

現在,當我進入Test.aspx文件,並改變它的母版到default.master和TestPH到PlaceHolderMain,我看到正確TestChild測試,所以頁面本身起作用。

沒有主人或ASPX頁面包含代碼隱藏着呢,從而web.config中沒有做出更改(SafeControls ...)

我不知道如果我需要啓用一些允許嵌套母版頁,或如果SharePoint 2007像往常一樣需要犧牲一個山羊它的祭壇...

回答

2

有一些關於SharePoint對待母版頁令牌的方式。這是因爲它們允許您從數據庫加載母版頁,它不必位於文件系統中。你可以在這裏閱讀更多關於它的信息:http://msdn.microsoft.com/en-us/library/ms476046.aspx

由於我從未在1.1版之後使用過「常規ASP.net」,我不知道主頁應該如何工作。
但是,我一直在做的是將default.master(生活在/ 12/template/global)的內容複製到一個新的文件,它不從任何東西繼承,然後我將它包含在網站定義功能中並引用它在onet.xml文件中。 這裏描述的技術:http://statto1974.wordpress.com/2007/04/30/using-a-custom-master-page-in-a-site-definition/

編輯:但是,也有several references to this being possible,例如,this one

+0

第一個鏈接的答案是:「雖然底層技術支持創建嵌套母版頁,但Windows SharePoint Services不支持嵌套母版頁。使用嵌套母版頁可能會在某些情況下導致意外行爲,例如阻止內容從渲染「。 – 2010-01-27 19:02:57

相關問題