在ASP.NET中访问子页中的母版页变量

5us2dqdw  于 10个月前  发布在  .NET
关注(0)|答案(4)|浏览(159)

这是我的主页面文件。我需要传递strNameidurlstarttime等到我的子页面。我知道我们可以在我们的子页面中编写此逻辑,但是,我想只在我的子页面中访问此主页面变量。
我不能在每个set/get方法中编写此逻辑。当在Child页面中访问这些变量时,我得到了null值。基本上,这里的master pagload在child pagload调用之后调用:

  1. MASTER PAGE NAME:
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.
            }
        }
    }

字符串

js4nwp54

js4nwp541#

string name = ((MyMasterPage)this.Master).strName;

字符串
读取Working with ASP.NET Master Pages Programmatically

brc7rcf0

brc7rcf02#

由Ramesh T在https://forums.asp.net/post/5557778.aspx上找到
你最好通过在你的内容(aspx页面)中添加@ MasterType指令来创建对你的母版页的强类型引用,如下所示

<%@ MasterType  virtualPath="~/MasterPage1.master"%>

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

var test1Text = Master.test1;


这样你就不需要投了。

qv7cva1a

qv7cva1a3#

正如穆罕默德·哈桑和皮特所建议的那样,这是可行的:

string name = ((MyMasterPage)this.Master).strName;

字符串
或者:

<%@ MasterType  virtualPath="~/MasterPage1.master"%>
var test1Text = Master.test1;


但是,考虑到母版页Page_Load事件中的代码在内容页中的Page_Load之后**执行。
因此,如果您在母版页中设置变量的值,然后尝试在内容页中获取,您将获得空值。
您将在这里找到更多信息:https://msdn.microsoft.com/en-us/library/dct97kc3.aspx

f0ofjuux

f0ofjuux4#

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

相关问题