我有一个index.aspx(index.aspx.cs),它将使用Server.exectue(“body.aspx”)包含body.aspx(body.aspx.cs);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
public partial class index : System.Web.UI.Page
{
public string text1 = "abc";
protected void Page_Load(object sender, EventArgs e)
{
}
}
在index.asp.cs中有一个变量text1,我想在body.aspx.cs中使用它,怎么做?
感谢
答案 0 :(得分:4)
我认为你错误地认为ASP.NET。我猜你是从Windows开发人员开始的。
ASP.NET Forms与Windows Forms不同。
您必须了解ASP.NET页面仅在请求被提供之前存在。然后它“死了”。
您不能像使用Windows窗体一样从/向页面传递变量。
如果要访问其他页面中的内容。然后,此页面必须将该信息存储在SESSION对象中,然后从另一个页面访问该会话对象并获取所需的值。
让我举个例子:
第1页:
public string text1 = "abc";
protected void Page_Load(object sender, EventArgs e)
{
Session["FirstName"] = text1;
}
第2页:
protected void Page_Load(object sender, EventArgs e)
{
string text1;
text1 = Session["FirstName"].ToString();
}
这就是你如何在未链接在一起的页面之间传递值。
此外,您可以通过修改查询字符串(将变量添加到URL)来传递值。
示例:
第1页:(按钮点击事件)
private void btnSubmit_Click(object sender, System.EventArgs e)
{
Response.Redirect("Webform2.aspx?Name=" +
this.txtName.Text + "&LastName=" +
this.txtLastName.Text);
}
第2页:
private void Page_Load(object sender, System.EventArgs e)
{
this.txtBox1.Text = Request.QueryString["Name"];
this.txtBox2.Text = Request.QueryString["LastName"];
}
这是你应该如何在页面之间传递变量
此外,如果您希望在您网站的所有访问者之间共享一个值。那么你应该考虑使用Application而不是Session
我希望这会有所帮助
答案 1 :(得分:1)