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

标签 asp.net webforms

我有两个按钮,它们都在 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/

相关文章:

webforms - 关于Webform和Asterisk标志中的ASP.NET路由

asp.net - Visual Studio 无法识别新类

asp.net - 从asp.net ListBox 获取所有选中的项目

webforms - 是否有等同于 Webforms 的 MvcBuildViews?

javascript - 提交按钮在弹出窗口中不起作用

ASP.Net Web 表单友好 URL 在服务器上不起作用

c# - 使用当前线程区域性与两位数的月份和日期格式化日期?

asp.net - 如何全局创建 CustomPrincipal(有和没有 AuthorizeAttribute)

javascript - 如何使用 JavaScript 以编程方式获取/设置输入标记的 OnClientClick 属性?

c# - 将 OnClick 事件附加到现有 JavaScript 按钮