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 に答える