C# 在asp.net中指定操作url时未触发OnClick事件

C# 在asp.net中指定操作url时未触发OnClick事件,c#,asp.net,.net,web,C#,Asp.net,.net,Web,我需要将用户重定向到paypal帐户。但在此之前,我想收集该用户的姓名和电子邮件。所以我使用下面的代码 <form id="paypalForm" method="post" action="https://www.paypal.com/cgi-bin/webscr" target="_top" runat="server"> <div> <label> Full Name:&l

我需要将用户重定向到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>
但问题是OnClick事件不会触发,它会重定向到指定的操作url

有什么问题吗


提前非常感谢你技术将为他们的学生和其他开发人员介绍一个博客,他们可以找到并分享他们关于C、C++、.NET java、PHP等的问题和解决方案,在这里,你可以找到他们的编程问题的精确解决方案。

< P> iiste技术将为他们的学生和其他开发人员介绍一个博客,他们可以找到并分享他们关于C、C++、.NET java、PHP等的问题和解决方案,在这里,您可以找到他们编程问题的确切解决方案。

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

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


您现在正在做的是强制请求转到另一个页面。即使按钮“想要”回发,您的
中的
操作
参数也会将请求指向其他地方。由于未进行回发且未再次加载页面,因此事件将不会触发。

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

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


您现在正在做的是强制请求转到另一个页面。即使按钮“想要”回发,您的
中的
操作
参数也会将请求指向其他地方。由于未进行回发且未再次加载页面,因此事件不会触发。

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


您可以在单击事件中将页面重定向到“”。因为如果你指定了一个动作,那么你将无法对For的数据进行汇总。您将无法获得值。

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


您可以在单击事件中将页面重定向到“”。因为如果你指定了一个动作,那么你将无法对For的数据进行汇总。您将无法获得这些值。

它将永远不会进入您编写的单击事件代码块。因为您正在将页面发布到paypal页面,而不是self页面

试试这个:

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

    受保护的无效btnSubmit\u单击(对象发送者,ImageClickEventArgs e) { var target=@; Response.Status=“307临时重定向”; AddHeader(“位置”,目标); }


它永远不会转到您编写的单击事件代码块。因为您正在将页面发布到paypal页面,而不是self页面

试试这个:

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

    受保护的无效btnSubmit\u单击(对象发送者,ImageClickEventArgs e) { var target=@; Response.Status=“307临时重定向”; AddHeader(“位置”,目标); }


asp.net不支持“MessageBox.Show”,您是否在btnSubmit\u处添加了断点以查看是否命中断点?与的事件绑定应该存在一些问题control@user2191496:我在btnSubmit_单击时添加了一个断点,但未命中该断点。我已更新了答案,请查看。如果您仍然不了解正在发生的事情,您可能应该阅读一些基础知识-ASP.NET事件如何工作,什么是回发,如何在网页上生成POST请求等。ASP.NET不支持“MessageBox.Show”,是否在btnSubmit\u处添加了断点?单击以查看是否命中断点?与的事件绑定应该存在一些问题control@user2191496:我在btnSubmit_单击时添加了一个断点,但未命中该断点。我已更新了答案,请查看。如果您仍然不了解正在发生的事情,您可能应该阅读一些基础知识-ASP.NET事件如何工作,什么是回发,如何在网页上生成POST请求等。请仔细解释。+1,是的,请使用其中一个onClick事件或动作参数。+1,是使用onClick事件或操作参数之一我不能使用Response.AddHEader,因为我需要在表单中提交隐藏值。您想在click事件中执行什么操作?您是否可以使用ajax调用按钮单击并重定向到paypa将表单值传递到页面
protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
    {
        //some code
    }