asp:按钮不会在点击事件时触发



我有一个按钮,比如

<asp:Button ID="Button1" runat="server" Text="Submit"  onclick="RedirectToLocker"  
                 OnClientClick="return false;" UseSubmitBehavior="false" />

以及代码隐藏中的方法,例如

  public void RedirectToLocker(object sender, EventArgs e)
        {
            Response.Redirect(ConfigurationManager.AppSettings["LockerLoginURL"]);
        }

但是当我单击按钮时,它不会命中方法中的代码。如果我删除 OnClientClick = "返回假",那么按钮会提交表单并转到错误的页面。我做错了什么?

编辑:我正在使用OnClientClick="return false;"代码,因为没有它,按钮由于某种原因充当它嵌套的表单的提交,并立即重定向到表单操作网址,而不是点击我的代码。

当客户端事件处理程序返回 false 时,将省略回发。

OnClientClick="return false;" // <-- no postback

因此,您要么需要删除它,要么告诉我们为什么您实际上要从 js-onclick 事件中返回 false。如果Response.Redirect转到错误的页面,您可能需要更改它。

编辑:因此,通过将表单的Action设置为另一个网址,您将重定向到另一个页面。然后,您可以将按钮的PostBackUrl设置为与当前页面相同的 URL。然后它会命中代码隐藏。

您需要

删除OnClientClick="return false;"才能运行服务器端方法。

如果浏览器重定向到错误的页面,请检查web.config中的LockerLoginURL应用程序设置值。这应该与您被重定向到的 URL 匹配。

将其更改为正确的 URL。

删除 OnClientClick="return false;"

最新更新