主页中有一些数据,如标题,标题等。我想根据使用母版页的每个页面设置这些数据。
为此,我创建了一些属性,如public string title {get; set;}
,并在masterpages的PageLoad()中设置默认值。
但是,我如何访问这些属性?据我所知,masterpage是一个为每个页面加载实例化的类,所以我需要找到它的对象来调用它的属性。
我该怎么做?
答案 0 :(得分: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的底部。
答案 1 :(得分: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"