表单提交在asp.net(Form submit in asp.net)

2019-09-16 19:57发布

我有两个按钮,这两个在asp.net提交表单。

我需要在below..What按钮的功能知道的是clicked..The登录或注册按钮。 并通过这些信息,我想触发的负载情况下的功能之一。

    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);

将重定向按钮事件之后立即发生的呢? 还是会再次触发页面加载事件,忽略重定向?

Answer 1:

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

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

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

这是引发Page_Load :看ASP.Net页生命周期

如果使用的是标准的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

UPDATE2:

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



文章来源: Form submit in asp.net