C# 在asp.net页面之间传递数据
我将实施密码重置功能。第一个用户在表单中输入电子邮件。然后单击提交。在服务器端,我检查电子邮件是否正确,用户是否存在于数据库中,如果正确,我将重定向到下一页(事实上,它与questry字符串参数?step=2的页面相同) 由于loadBalancer,我无法使用会话。保持用户邮件的最佳方式是什么C# 在asp.net页面之间传递数据,c#,.net,asp.net,C#,.net,Asp.net,我将实施密码重置功能。第一个用户在表单中输入电子邮件。然后单击提交。在服务器端,我检查电子邮件是否正确,用户是否存在于数据库中,如果正确,我将重定向到下一页(事实上,它与questry字符串参数?step=2的页面相同) 由于loadBalancer,我无法使用会话。保持用户邮件的最佳方式是什么 感谢您的帮助如果是同一页,那么它应该相当简单。您可以添加隐藏的输入字段并将其附加到表单中,以便在按钮单击处理程序中: protected void Button1_Click(object sender
感谢您的帮助如果是同一页,那么它应该相当简单。您可以添加隐藏的输入字段并将其附加到表单中,以便在按钮单击处理程序中:
protected void Button1_Click(object sender, EventArgs e)
{
string email = email.Text;
//Check database etc
HtmlInputHidden hidden = new HtmlInputHidden();
hidden.Value = email;
hidden.ID = "hiddenemail";
form1.Controls.Add(hidden); // Where form1 is the ID of a form with runat=server
}
或者,如果有一个现有的服务器控件(例如可以使用的标签),则事件更好,您只需执行以下操作:
protected void Button1_Click(object sender, EventArgs e)
{
string email = email.Text;
//Check database etc
Label1.Text = email; // Where Label1 is the ID of a ASP:Label on your page
}
如果您不想使用回发(无论出于何种原因)并且无法使用会话,我看到的唯一解决方案是将电子邮件包含在查询字符串中
Response.Redirect(“MyPage.aspx?step=2&email=“+Server.UrlEncode(emailaddr))代码>
如果不一定是重定向,请参阅James Hay的答案。我真的不明白这里的问题是什么
如果你在数据库中有电子邮件,那一定意味着你也在数据库中有所有其他信息。因此,要跳过所有重新加载页面等,请继续使用
或
,因为visible=false/true之间的交换不需要页面重新加载回发
范例
if(email == emailFromDB)
{
panelStep1.visible=false;
panelStep2.visible=true;
// Insert information into whatever controls you have in mind.
}
数据库里有你的电子邮件,是吗?你可以用。但为什么要重定向?难道你不能使用transfer在那里呈现页面,然后当你还有电子邮件地址可以写入页面时?我不明白,使用transfer意味着什么?允许您切换正在服务器上呈现的页面。实际上,忽略我的回答,我显然没有正确阅读您的问题