如何在母版页中创建创建变量/属性,让子页面访问它们?

时间:2010-04-14 17:09:11

标签: c# asp.net master-pages

如何在母版页中创建创建变量/属性,让子页面访问它们?

所以我的主人将有一个字符串属性HomeUrl

使用母版页的任何页面如何访问此属性?

2 个答案:

答案 0 :(得分:4)

您应该为您的母版页使用基类,它将定义您的属性:

public class BaseMasterPage : System.Web.UI.MasterPage
{
    public string HomeUrl {get; set; }
}

然后您的母版页应该继承自此BaseMasterPage类(例如):

// real master page
public partial class Common_MasterPages_Backend_Default : BaseMasterPage
{
}

在此之后,您可以通过Page.Master属性访问您的媒体资源:

BaseMasterPage baseMaster = (BaseMasterPage)Page.Master;
string homeUrl = baseMaster.HomeUrl;

来自使用此母版页的任何页面。

答案 1 :(得分:1)

您可以使用继承来执行此操作。

假设:

  • 您的主人名为Med_Instrumento.Master
  • 您的网站内容名为Med_Instrumento1.aspx

您可以创建另一个页面(比如Instrumentobase.aspx)并将所有公共/受保护的属性放在那里。此页面也必须使用母版页。

之后,将Med_Instrumento1.aspx类更改为从此页面继承。

例如:这是代码: webcontentpage:

<%@ Page Language="C#" MasterPageFile="~/Med_Instrumentos.Master" AutoEventWireup="true" CodeBehind="Med_Instrumento1.aspx.cs"

背后的代码:

 public partial class Med_Instrumento1 : InstrumentoBase

基类:

<%@ Page Language="C#" MasterPageFile="~/Med_Instrumentos.Master" AutoEventWireup="true" CodeBehind="InstrumentoBase.aspx.cs" Inherits="Auscultacion.InstrumentoBase" Title="Untitled Page" %>

背后的代码:

    public partial class InstrumentoBase : System.Web.UI.Page
    {

    public string INST_Emplazamiento
    {
             get {return "Some Value"  );}
    }
    public TextBox DevolverTextBoxdeMaster(string sNombreTextBox)
          {
             TextBox Texto;
             Texto = (TextBox)Master.FindControl(sNombreTextBox);
             return Texto;
          }
}

在Med_Instrumento1.aspx中,您可以使用INST_Emplazamiento属性或DevolverTextBoxdeMaster方法。