当我在 asp.net 中指定操作 url 时,OnClick 事件未触发

本文关键字:OnClick 事件 url 操作 asp net | 更新日期: 2023-09-27 18:30:32

我需要将用户重定向到PayPal帐户。但在此之前,我想收集该用户的姓名和电子邮件。所以我使用以下代码。

<form id="paypalForm" method="post" action="https://www.paypal.com/cgi-bin/webscr"
                 target="_top" runat="server">
    <div>
        <label>
            Full Name:<span>*</span></label>
        <asp:TextBox ID="name" runat="server" CssClass="large form-poshytip" title="Enter your Full Name."></asp:TextBox>
        <label>
            E-Mail:<span>*</span></label>
        <asp:TextBox ID="email" runat="server" CssClass="large form-poshytip" title="Enter Email Address."></asp:TextBox>
        <input type="hidden" name="cmd" value="_s-xclick" />
        <div id="partnerFormButton">
            <br />
            <asp:ImageButton runat="server" Name="btnSubmit" Text="          Next          "
                ID="btnSubmit" 
                ImageUrl="https://www.paypalobjects.com/en_GB/i/btn/btn_buynowCC_LG.gif" 
                onclick="btnSubmit_Click" CausesValidation="False" ></asp:ImageButton>
        </div>
    </div>
    </form>

代码隐藏代码:

protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
    {
        //some code
    }

但问题是 OnClick 事件不会触发,它会重定向到指定的操作 URL。

可能是什么问题?

提前非常感谢

...!!

当我在 asp.net 中指定操作 url 时,OnClick 事件未触发

这不是

ASP.NET 事件的工作方式。事件在进行回发后触发,并且您通过提交表单来阻止回发。您需要决定要做什么 - 要么使用表单提交数据(就像您现在正在做的事情一样),而不是使用 OnClick 事件,要么使用该事件并从表单中删除操作和方法参数。

http://msdn.microsoft.com/en-us/library/ms178472.aspx

进一步解释一下:单击按钮后不会立即触发事件。发生的情况是,正在向同一页面发出 POST 请求,并在 ViewState 中传递页面状态。换句话说 - 默认情况下按下 ASP.NET 中的按钮有点像指向同一页面的链接(尽管这是一个简化的解释)。只有在发出该请求并再次加载页面后,才会触发事件 - 请参阅上面的链接。

您现在正在做的是强制请求转到另一个页面。即使按钮"想要"执行回发,<form>中的 action 参数也会将请求指向其他位置。由于未进行回发,并且未再次加载页面,因此不会触发该事件。

IISTe Technologies将为他们的学生和其他开发人员介绍一个博客,在那里他们可以找到并分享他们关于c,c ++,.NET java,PHP和其他的问题和解决方案,在这里你可以找到他们的编程问题的确切解决方案。

基本上,您已在表单标签中指定了操作。

您可以在点击事件中将页面重定向到"https://www.paypal.com/cgi-bin/webscr"。因为如果您指定操作,那么您将无法对 for 的数据求和。你不会得到这些值。

它永远不会转到您编写的点击事件代码块。因为您将页面发布到PayPal页面而不是自己。

试试这个:

  • 从表单中删除操作属性。
  • 将点击事件写为

    受保护的无效btnSubmit_Click(对象发送器,ImageClickEventArgs e) { var 目标 = @"https://www.paypal.com/cgi-bin/webscr"; 响应状态 ="307 临时重定向"; Response.AddHeader("Location", target); }