我是ASP.NET的新手,遇到了一个我尚未弄清楚的问题。在我的Default.aspx页面上,我有一个用户可以注册的地方。这只需要字段 - 电子邮件和密码。单击提交按钮后,他们将进入Signup.aspx,其中显示了一个更大的注册表单,其中包含用户名,电子邮件,密码,确认密码等字段。我想自动填写我的电子邮件和密码文本框与用户输入的Default.aspx页面。这可能吗?我正在使用Microsoft Visual Web Developer 2010 Express。
答案 0 :(得分:0)
有多种方法可以做到这一点。
一种方法是使用查询字符串导航到:
http://example.com/Signup.aspx?email=value1&password=value2
并在Signup.aspx Page_Load 事件中获得价值,如:
String email = Request.QueryString["email"];
String password = Request.QueryString["password"];
并为您的文本框分配控件,如:
txtEmail.text =email;
txtPassword=password;
但是在查询字符串中将密码作为明文发布并不是一种好习惯。
//
void Page_Load(object sender, EventArgs e)
{
System.Text.StringBuilder displayValues =
new System.Text.StringBuilder();
System.Collections.Specialized.NameValueCollection
postedValues = Request.Form;
String nextKey;
for(int i = 0; i < postedValues.AllKeys.Length; i++)
{
nextKey = postedValues.AllKeys[i];
if(nextKey.Substring(0, 2) != "__")
{
displayValues.Append("<br>");
displayValues.Append(nextKey);
displayValues.Append(" = ");
displayValues.Append(postedValues[i]);
}
}
Label1.Text = displayValues.ToString();
}
最佳&amp; 最简单我认为是使用会话:
在Default.aspx的Submitbutton_click
事件上,将值保存到Session,如:
Session["Email"] = txtEmail.text;
Session["Password"]=txtPassword.text;
并检索Signup.aspx
Page_load
事件的值,例如:
string email = (string)(Session["Email"]);
string password = (string)(Session["Password"]);
&安培;分配给您的控件/文本框,如:
txtEmail.text =email;
txtPassword=password;
还有更多方法可以从上一页检索价值,例如PreviousPage.FindControl("txtEmail")
,但我从不喜欢它们。