【问题标题】:Form submit in asp.net在 asp.net 中提交表单
【发布时间】:2012-04-28 15:58:56
【问题描述】:

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


    【解决方案1】:

    如果按钮是服务器端控件<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 集合(您也可以使用服务器端控件进行操作)。 p>

    更新:

    • 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

    【讨论】:

    • 不,我没有使用常规的帖子项目...这些按钮事件只有在页面有效时才会执行,对吧?...查看更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多