gpt4 book ai didi

asp.net - 在asp.net中提交表单

转载 作者:行者123 更新时间:2023-12-03 03:20:50 25 4
gpt4 key购买 nike

我有两个按钮,它们都在 asp.net 中提交表单。

我需要知道下面的功能..单击了什么按钮..登录或注册按钮。通过该信息,我想触发加载事件中的函数之一。

    protected void Page_Load(object sender, EventArgs e)
{
AddCountries();
AddAge();

if (IsPostBack)
{
string pwd = LoginPassword.Text;
string saltAsBase64 = "z3llWdYSA2DY3M4uNSpOQw==";
string hash = HashPass.GenerateHash(pwd, saltAsBase64);

if (Page.IsValid)
{
LoginUser(hash);
/// Depending on what the user pressed..I need to trigger the function
// above or below
RegisterUser(hash);
}



}
}

如果我在按钮事件中有这个怎么办:

FormsAuthentication.RedirectFromLoginPage(currentUser.UserName, false);

重定向会在按钮事件之后立即发生吗?或者它会再次触发页面加载事件,忽略该重定向吗?

最佳答案

如果按钮是服务器端控件 <asp:button/>然后您可以处理(特定)按钮的事件:

protected void Button1_Click(object sender, EventArgs e) {....}

对比

protected void Button2_Click(object sender, EventArgs e) {......}

之后提出的 Page_Load请参阅:ASP.Net Page Life Cycle

如果您使用标准 HTML <input type=submit />并发回同一页面,然后您可以检查 Request.Form集合(您也可以使用服务器端控件来完成)。

更新:

  • Page_Load 总是在回发时引发
  • 客户端验证将阻止回发
  • 如果您正在使用服务器验证控件,请检查 Page.IsValid在执行某些操作之前在处理程序中
  • 根据您的需要,您还可以检查 Page_Load 中的控件/值(检查 Page.IsPostBack - 重点是你有选择......

因此,如果您(相反)想检查 Page_Load :

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
if ((UserEmail.Text == "jchen@contoso.com") &&
(UserPass.Text == "37Yj*99Ps"))
{
FormsAuthentication.RedirectFromLoginPage
(UserEmail.Text, Persist.Checked);
}
else
{
......
}
}
}

以上代码取自 MSDN,并稍加修改

更新2:

如果您正在使用服务器验证控件,请勿使用 Page_Load 。使用按钮处理程序并检查 Page.IsValid .

关于asp.net - 在asp.net中提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com