我试图将密码值捕获到Label
。
4位数字和 1小写字母
这是我添加数字和数字
的方法public void SaveTransactionID()
{
string password = lblStart.Text + lblStop.Text;
lblPassword.Text = password;
}
发电机:
private void GenRandomNumber()
{
Random generator = new Random();
String r = generator.Next(0, 10000).ToString("D4");
lblStart.Text = r;
}
//Generate Random Letter
static class RandomLetter
{
static Random _random = new Random();
public static char GetLetter()
{
// This method returns a random lowercase letter.
// ... Between 'a' and 'z' inclusize.
int num = _random.Next(0, 26); // Zero to 25
char let = (char)('a' + num);
return let;
}
}
我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
char lowerCase;
lowerCase = Convert.ToChar(RandomLetter.GetLetter());
lblStop.Text = lowerCase.ToString();
GenRandomNumber();
}
我知道我的密码会改变每个页面加载。这就是我尝试将其保存在Label
上的原因,以便我可以在页面再次加载时捕获密码。但是在页面加载期间我的SaveTransactonId()
也会发生变化。即使页面加载,我怎么能存储我的密码值?
答案 0 :(得分:2)
以下是一个例子:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
char lowerCase;
lowerCase = Convert.ToChar(RandomLetter.GetLetter());
lblStop.Text = lowerCase.ToString();
GenRandomNumber();
}
}
这将解决您的问题。
修改强>
这里IsPostBack
= true或false时出现short explanation条件。对于用于开发和调试代码的单台计算机,"客户端"是你的浏览器和"服务器"是你的电脑。 (在链接的文章中,问题不是"什么是IsPostBack?"正确的问题是"什么是PostBack?"有一个更好,更复杂的图表;我找不到它,但是这样做。)
PostBack是向服务器提交ASP.NET页面以进行处理的过程的名称。如果(例如)要针对某些来源(例如验证数据库的用户名和密码)检查页面的某些凭证,则完成PostBack。这是客户无法独立完成的事情,因此必须将这些细节发回['通过用户交互到服务器。
回发是从客户端(浏览器)到服务器然后返回到客户端的往返。这使您的页面可以通过服务器上的asp引擎和任何要更新的动态内容。
有关PostBack问题的更详细解答,see here。
这是ASP.NET(网页)页面生命周期概述的description,其中一些涉及PostBack。
答案 1 :(得分:1)
将你的代码编写在if(!Page.IsPostBack){//将你的逻辑放在这里。}
你可以在Session [" sessionKey"] = value;
中保存你的价值你可以通过检查session is not null来检索它
if(Session [" sessionKey"]!= null);
lblPassword.Text = Session [" sessionKey"];
答案 2 :(得分:0)
您可以将值存储在Session
变量中;您还可以通过Page.IsPostBack
属性控制初始页面加载Page_Load
与后续页面重新加载(每个会话)中运行的内容。