FindControl を使用せずに、コンテンツ ページからマスター ページにラベルを設定しようとしています。したがって、マスターページで次のように宣言しました。
public partial class MainMasterPage : System.Web.UI.MasterPage
{
public string UserOfficeLabel
{
get { return lblUserOffice.Text; }
set { lblUserOffice.Text = value; }
}
public string OfficeLocationLabel
{
get { return lblOfficeLocation.Text; }
set { lblOfficeLocation.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
....
}
}
"UserOfficeLabel" と "OfficeLocationLabel" はマスター ページのラベルです。次に、コンテンツ ページ (.aspx) で、「Page」ディレクティブの下に次のディレクティブを追加しました。
<%@ MasterType VirtualPath="~/Main/MainMasterPage.master" %>
コンテンツ ページのコード ビハインド (.cs ファイル) で、ラベルにアクセス/設定しようとしています。
Master.UserOfficeLabel = ...
ただし、UserOfficeLabel は Master のオプションではありません (VS Intellisense ではオプションとしてリストされていません)。とにかく追加すると、「MainMasterPage.UserOfficeLabelはその保護レベルにアクセスできません」と表示されます