C# 阻止Asp.NET按钮提交表单

C# 阻止Asp.NET按钮提交表单,c#,asp.net,forms,paypal,C#,Asp.net,Forms,Paypal,所以,我有一个Paypal表单,它创造了奇迹。然而,我现在需要添加一个优惠券字段,在这里有人可以输入一个代码,并根据后端回复得到一个折扣 这一切都非常有效,但我在添加“在检查代码是否有效之前知道”选项时遇到了一个问题。目前,我的表单(简化后)如下所示: <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" id="payPalForm" runat="server"> &l

所以,我有一个Paypal表单,它创造了奇迹。然而,我现在需要添加一个优惠券字段,在这里有人可以输入一个代码,并根据后端回复得到一个折扣

这一切都非常有效,但我在添加“在检查代码是否有效之前知道”选项时遇到了一个问题。目前,我的表单(简化后)如下所示:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"
    id="payPalForm" runat="server">
    <asp:TextBox runat="server" ID="txtCode" />
    <asp:Button Text="Validate" OnClick="ValidateDiscount" runat="server" />
    <asp:Label ID="txtDesc" runat="server" />

    <input type="submit" name="Submit" value="Pay up!" />

    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="upload" value="1" />
    ...
</form>
我的问题是,当我点击Validate按钮时,表单被提交,我最终进入Paypal网站。我最初在preventDefault()中使用Jquery,但这实际上阻止了我的服务器端函数启动。我也尝试过使用标准的
标签,但我无法让它启动我的服务器端功能


有没有办法让“验证”按钮不提交表单,或者我应该在单击“提交”按钮时从表单中删除操作并手动提交表单?

您已经将表单操作设置为“发布到PayPal”

这就是行动:

action="https://www.sandbox.paypal.com/cgi-bin/webscr"
以下是您在表单标签中的位置:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"
id="payPalForm" runat="server">


从表单标签中删除此项,它将回发到您的应用程序。

您的表单将发布到paypal,因为这是您为其设置的操作。你有很多选择。当您发现折扣有效时,您可以尝试从c#中的ValidateDiscovery函数重定向到paypal。哦。。。实际上我并不知道表单的动作阻止了回发“-”,直到是的,它能抓住你。W3C网站提供了更多信息:。
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"
id="payPalForm" runat="server">