0

母版页中有一些数据,如标题、标题等。我想根据使用母版页的每个页面设置这些数据。

为此,我创建了一些属性,例如public string title {get; set;}, 并在 masterpages 的 PageLoad() 中设置默认值。

但是,我怎样才能访问这些属性?据我了解,masterpage 是一个为每个页面加载实例化的类,所以我需要找到它的对象来调用它的属性。

我怎样才能做到这一点?

4

2 回答 2

3

Page.Master指当前页面的MasterPage。您可以将其转换为相关类型并以这种方式访问​​属性。在母版页中:

<%@ Master Language="C#" ClassName="MasterExample" %>

<script runat="server">
    public string SiteName
    {
        get { return "My Site Name"; }
    }
</script>

然后,在页面中:

protected void Page_Load(object sender, EventArgs e)
{
  MasterExample m = (MasterExample)Page.Master;
  mylabel.Text = m.SiteName;
}

请参阅http://msdn.microsoft.com/en-us/library/system.web.ui.masterpage(v=vs.110).aspx的底部。

于 2013-07-24T21:15:08.703 回答
1

您应该将此代码放在设计视图中(在 html 中)

<%@ MasterType VirtualPath="~/NameOfMasterPage.Master" %>

在下面

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeBehind="default.aspx.cs" Inherits="MOCKUPPROJECT._Default" EnableEventValidation="false" %>

现在您可以更改它的属性

Master.MasterContentHolderPage="some values"
于 2013-07-24T21:29:23.437 回答