如何访问ASPX页面中的变量

本文关键字:变量 ASPX 何访问 访问 | 更新日期: 2023-09-27 18:23:49

ASPX:

<form id="form1" runat="server">
    <%
       int a = 25;
    %>
    <asp:Label ID="Label1" runat="server" 
         Text='<%#a %>'></asp:Label>
</form>

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
       DataBind();
    }
}

错误:

名称"a"在当前上下文中不存在

如何访问ASPX页面中的变量

找到的解决方案:

ASPX:

<form id="form1" runat="server">
    <asp:Label ID="Label1" runat="server" 
         Text="<%#a %>"></asp:Label>
</form>

代码背后:

public int a;
protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      a = 25;
      DataBind();
   }
}

这种方式会起作用。。ASPX:

<form id="form1" runat="server">
         <asp:Label ID="Label1" runat="server"></asp:Label>
</form>

代码背后:

public int a;
protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      a = 25;
    Label1.Text=a.ToString();
   }
}

需要注意的是,aspx文件由实现IHttpHandler的System.Web.UI.Page类编译为一个类,创建的类继承aspx.cs/aspx.vb,这解释了<%@Page%>指令,并且根据逻辑,您不能在代码隐藏中引用在aspx代码块中声明的变量
作为变通方法,您可以在代码隐藏中声明protected成员,并从代码块中访问这些成员。