访问asp.net中子页面中的主页面变量

Pad*_*bha 15 c# asp.net

这是我的母版页文件.我需要在子页面中输入strName,id,url,startime等变量.我知道我们也可以在我们的子页面中编写这个逻辑.但是,我想仅在子页面中访问此母版页变量.请建议.我不能在每个set/get方法中编写这个逻辑.在子页面中访问这些变量时,我得到空值.基本上这里是在子页面调用之后调用的主页面调用

1)MASTER PAGE NAME:MyMasterPage

 public partial class MyMasterPage: MasterPage
 {
     public string strName = string.Empty;
     public string id= string.Empty;
     public string url = string.Empty;
     public string startTime = string.Empty;
     public string endTime = string.Empty;
     public string remoteUrl = string.empty;

     public void Page_Load(object sender, EventArgs e)
     {

        DataTable dtEventTable = DataAccessManager.GetEventInfo(Connection);

        if (dtEventTable.Rows.Count > 0)
        {
               strName = dtEventTable.Rows[0]["NAME"].ToString(); 
               id = dtEventTable.Rows[0]["ID"].ToString(); 
               url= dtEventTable.Rows[0]["URL"].ToString(); 
               starttime = dtEventTable.Rows[0]["starttime"].ToString(); 
               endtime = dtEventTable.Rows[0]["endtime"].ToString(); 
               remotelive = dtEventTable.Rows[0]["remotelive"].ToString(); 
               // assume that strName = "TCG",id=5, startime=20111001 etc.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Muh*_*han 13

string name = ((MyMasterPage)this.Master).strName;
Run Code Online (Sandbox Code Playgroud)

阅读以编程方式使用ASP.NET母版页


Pet*_*ete 5

Ramesh T 在https://forums.asp.net/post/5557778.aspx上发现了此内容

您最好通过在内容(aspx 页面)中添加 @ MasterType 指令来创建对母版页的强类型引用,如下所示

<%@ MasterType  virtualPath="~/MasterPage1.master"%>
Run Code Online (Sandbox Code Playgroud)

并在您的 aspx 页面或隐藏代码 (aspx.cs) 中访问其成员,如下所示

var test1Text = Master.test1;
Run Code Online (Sandbox Code Playgroud)

这样你就不需要投射了。


Gök*_*maz -2

您可以使用 Session[] 对象从另一个页面访问变量。