C# 将int类型变量值从内容页(aspx)传递到母版页和用户控件

C# 将int类型变量值从内容页(aspx)传递到母版页和用户控件,c#,asp.net,webforms,C#,Asp.net,Webforms,我需要将变量从内容页传递到asp.net webforms MasterPage.aspx正由以下内容页使用 Default.aspx Aboutus.aspx contactus.aspx 如果我没有错,那么页面执行的情况如下 Content Page Master Page User Control 出于这个原因,我想定义变量,让我们在default.aspx,About.aspx,contactus.aspx 这样我就可以在内容页上获取页面id本身的值,并在需要时将其传递给母版页和用户

我需要将变量从内容页传递到
asp.net webforms

MasterPage.aspx
正由以下内容页使用

Default.aspx
Aboutus.aspx
contactus.aspx
如果我没有错,那么页面执行的情况如下

Content Page
Master Page
User Control
出于这个原因,我想定义变量,让我们在
default.aspx
About.aspx
contactus.aspx

这样我就可以在内容页上获取页面id本身的值,并在需要时将其传递给母版页和用户控件

我不确定如何将变量
page\u id
值传递给母版页中的另一个变量名
page\u id
。我需要这样做,因为我不允许对页面Id使用任何查询字符串或url路由值

我需要传递变量而不是来自任何
文本框的值
是否可能,或者我必须为此使用
隐藏字段


我需要传递如下图所示的值。

我认为您需要使用
属性

编辑以反映更多信息

因此,如果用户控件具有:

public partial class _ascx1 : System.Web.UI.UserControl
{
    public int page_id { set; }

    protected void Page_Load(object sender, EventArgs e)
    {
       // The webcontrol does things here
       if(page_id > 0) { };
    }
}

public partial class _ascx2 : System.Web.UI.UserControl
{
    public int page_id { set; }

    protected void Page_Load(object sender, EventArgs e)
    {
       // The webcontrol does things here
       if(page_id > 0) { };
    }
}
母版页包含以下内容:

public partial class _MyMaster : System.Web.UI.MasterPage
{
    public int page_id { set; }

    protected void Page_Load(object sender, EventArgs e)
    {
       // My Master page stuff
       if(page_id > 0) {}; // DO stuff with page ID
    }
然后内容页具有以下内容:

protected void Page_Init(object sender, EventArgs e)
{
     ((_ascx1)Page.FindControl("ascx1_id")).page_id = 1;
     ((_ascx2)Page.FindControl("ascx2_id")).page_id = 1;

     ((_MyMaster)Page.Master).page_id = 1;
}
然后在webcontrol和母版页中,您应该能够访问
page\u id
,并使用它执行您希望的操作

通过在内容页的
Page\u Init
中设置ID,这意味着该ID应该在网络控件和母版页的
Page\u Load
事件中可用

可以使用母版页上的文本框/隐藏字段:

<asp:hiddenField id="hdnField" runat="server" value="0" />
并在母版页上访问它: int page_id=hdnField.value

或网络控制:
int page_id=int.Parse(((HiddenField)page.Master.FindControl(“hdnField”)).value)

用户控件是否在母版页中?还是在aspx页面?本质上,您希望从用户控件的内容页中获取一个变量,这两个变量都包含在母版页中,对吗?我所有的用户控件都在内容页
aspx
上,我需要为母版页以及用户控件设置page\u id值。在RemarkLema,我的意思是传递一个变量值'int page\u id'“在.aspx文件中定义,我想将其传递给在master中定义的\u mp\u page\u idpage@KnowledgeSeeker我知道你要去哪里了,谢谢你提供的额外信息。我编辑了答案以反映我的想法。2个方法、属性或隐藏控件。在我看来,属性是传递信息的一种更简洁的方式,但是如果您需要通过JavaScript从客户端进行任何交互,那么您往往需要使用隐藏字段和隐藏文本框。
((HiddenField)Page.Master.FindControl("hdnField")).value = "1";