2010-07-27 138 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> 
相关问题