我有一个名为MasterPage.master的母版页,其中<fieldset>
标记为<legend>
。像这样:
<fieldset id="NewTrade" runat="server">
<legend runat="server" class="legend"><%= this.BodyTitle %></legend>
<asp:ContentPlaceHolder id="contentMain" runat="server" />
</fieldset>
masterpage.master文件从SiteMaster.cs继承SiteMaster。 SiteMaster有一个名为BodyTitle的公共字段。我想在正常页面加载时设置BodyTitle,但我不知道该怎么做。基本上我想要做的就是有一个围绕我的主内容的图例,然后在页面加载时为每个页面设置图例文本。最好的方法是什么?
所以,在Default.aspx中,我想在Page_Load
中做这样的事情:
BodyTitle.Text = "Home"
由于
答案 0 :(得分:2)
(this.Master as SiteMaster).BodyTitle.Text = "Home";
这会将您的Page的Master页面属性强制转换为基类SiteMaster。您也可以将它直接转换为MasterPage类(来自您的MasterPage.master),但如果您打算这样做,那么@ Greg的答案会更好,尽管它们都可以。只是取决于您的要求。设置aspx页面的MasterType属性是一个很好的解决方案,但如果您正在进行主页的动态切换或希望更灵活,那么上述解决方案将更适合。
答案 1 :(得分:1)
您将使用Master
对象的Page
属性,并将其强制转换为SiteMaster
类。
((SiteMaster)this.Master).BodyTitle = "Home";
答案 2 :(得分:1)
您可以将其放在内容页面的顶部:
<%@ MasterType VirtualPath="~/masterpage.master" %>
这会自动导致页面的Master属性属于您的主类的类型,因此您可以在不进行转换的情况下访问该属性。