1

.aspx ページの継承元となるカスタム基本クラスを作成しました。

マスター ページは Page ではなく MasterPage から継承されるため、自分のページとマスター ページの両方で使用できる共通の機能を作成するにはどうすればよいですか?

public class SitePage : System.Web.UI.Page
{

  public SitePage()
  {

  }

  public bool IsLoggedIn
  {
         //
  }

  public string HtmlTitle
  {
           //
   }
}
4

2 に答える 2

5

1 つの方法は、すべての機能をマスター ページに配置し、常にマスター ページを経由してそれらを呼び出すことです。Master次のプロパティを厳密に入力できSitePageます。

public class SitePage : Page
{
    public new MyMaster Master { get { return base.Master as MyMaster; } }
}

次に、マスターを介して値にアクセスします。

this.Master.IsLoggedIn
于 2013-01-30T20:43:21.987 に答える
0

マスター ページ:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MyProject.master.cs"
    Inherits="MyProject.MasterPages.MyProject" %>

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">   
</asp:ContentPlaceHolder>

ベースページ:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/MyProject.Master"
    AutoEventWireup="true" CodeBehind="BasePage.aspx.cs"
        Inherits="MyProject.BasePage" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
    runat="server">
</asp:Content>

コンテンツページ:

<%@ Page Title="MyProject - Home" Language="C#"
    MasterPageFile="~/MasterPages/MyProject.Master" AutoEventWireup="true"
        CodeFileBaseClass="MyProject.BasePage" CodeFile="Default.aspx.cs"
            Inherits="MyProject.Default"
                Meta_Description="Code Snippet: Master Page and Base Page"
                    Meta_Keywords="master, base, content" Theme="Style" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
   runat="server">
</asp:Content>
于 2013-01-30T20:58:52.050 に答える