跨页面交叉发布信息

时间:2011-05-12 10:32:41

标签: c# asp.net

我设置代码的方式不允许我从上一页获取信息。

第1页的信息:

public string Name{  get { return FirstName.Text; } private set{} }

public string Email { get { return email.Text; } private set { } }

第二页的信息(获取):

标记代码:

<%@ PreviousPageType VirtualPath="~/Registration.aspx" %> 

c#c​​ode:

protected void Page_Load(object sender, EventArgs e)
{
    string name = "";
    string email = "";
    if (PreviousPage != null)
    {
        name = PreviousPage.Name;
        email = PreviousPage.Email;// both fields are always null... why?
    }

我将上一节改为:仍然无法工作

            Response.Redirect("CheckYourEmail.aspx");
    }
    ViewState["LoginName"] = FirstName.Text;
    ViewState["Email"] = email.Text;
    ViewState["Password"] = password1.Text;

}

public string Name { get { return ViewState["LoginName"].ToString() ; } private set { } }

public string Email { get { return ViewState["Email"].ToString(); } private set { } }

public string UserPassword { get { return ViewState["Password"].ToString(); } private set { } }

我也试过请求[“电子邮件”];

不会工作

4 个答案:

答案 0 :(得分:2)

将值保存在会话对象中,并从其他页面获取这些值。

// When retrieving an object from session state, cast it to 
// the appropriate type.
ArrayList customers = (ArrayList)Session["Customers"];

// Saving into Session to be retrieved later.
Session["Customers"] = customers;

答案 1 :(得分:1)

Http协议是一种状态Less Protocol。 尝试使用Session或缓存来保存数据。

答案 2 :(得分:1)

据我所知,您的代码看起来是正确的。您是否为文本框启用了viewstate?

当您执行跨页回发时,源页面的生命周期将重新开始。一旦目标页面访问PreviousPage属性。

您可以通过Request对象获取值吗?

请求[ “FirsName”]

答案 3 :(得分:0)

前一页的实例已经消失,因此无法从中检索数据......