2010-07-27 307 views
0

我的所有ASP.NET頁面都有主頁面。它適用於95%的頁面...除了它還包含其他5%頁面中包含的不需要的屬性。這導致應用程序問題。內容頁面有可能以某種方式選擇啓用/禁用母版頁中可用的功能嗎?我可以想到的一個選擇是讓主頁面查看頁面名稱,然後決定要做什麼,但從長遠來看這有點笨拙......從主頁面中禁用內容頁面的功能

回答

2

您可以在內容頁面中添加MasterType指令所以,你將有機會獲得母版頁類...並從那裏,你可以實現使您的母版頁的禁用功能...

<%@ MasterType virtualpath="~/MyMaster.master"%> 

並在後面的代碼,你將有機會獲得Master屬性作爲打字類...

0

在您的母版頁中提供內容佔位符:

<asp:ContentPlaceHolder ID="foo" runat="server"> 
    <div>Some default content</div> 
</asp:ContentPlaceHolder> 

在不需要的默認行爲覆蓋此佔位符用空字符串頁面的5%:

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="foo" /> 

其他95頁%將得到共同的行爲。

0

您可以通過獲取頁​​面並將其轉換爲您的母版頁的類型來直接訪問母版頁,如下所示。這會將您連接到母版頁,但我能想到的唯一其他選項是在會話中創建密鑰。

(MyMasterPage)Page.Master 
0

假設這些功能在母版頁的ASP標記來表示,你可以一個ContentPlaceHolderControl內包裝它:

<asp:ContentPlaceHolder ID="OptionalContent" runat="server"> 
     *** This is my optional content *** 
    </asp:ContentPlaceHolder> 

在頁面的95%,其中該內容的作品,你可以只是在您的頁面上不包含「OptionalContent」的內容控件。對於不能正常工作的5%,您可以包含「OptionalContent」的空白內容控件:

  <asp:Content ContentPlaceHolderID="OptionalContent" runat="server"></asp:Content> 
相關問題