有关如何在页面和主控形状之间创建公共基类(或功能)的建议

本文关键字:基类 创建 功能 之间 | 更新日期: 2023-09-27 17:56:48

我创建了一个自定义基类,我的.aspx页面继承自该基类。

由于母版页继承自母版页而不是页面,因此如何创建在我的页面和主页中都可用的通用功能?

public class SitePage : System.Web.UI.Page
{
  public SitePage()
  {
  }
  public bool IsLoggedIn
  {
         //
  }
  public string HtmlTitle
  {
           //
   }
}

有关如何在页面和主控形状之间创建公共基类(或功能)的建议

一种方法是将所有功能放在母版页中,并始终通过母版页调用它们。 您可以在 SitePage 中强键入 Master 属性:

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

然后通过主节点访问这些值:

this.Master.IsLoggedIn

母版页:

<%@ 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>