0

我有一个按钮

<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 = "return false;" 然后按钮提交表单并转到错误的页面。我究竟做错了什么?

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

4

3 回答 3

2

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

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

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

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

于 2012-05-09T16:02:16.010 回答
0

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

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

将此更改为正确的 URL。

于 2012-05-09T16:00:18.077 回答
0

删除OnClientClick="return false;"

于 2012-05-09T16:00:41.893 回答