我有一个按钮,比如
<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;"