C# 在asp.net中指定操作url时未触发OnClick事件
我需要将用户重定向到paypal帐户。但在此之前,我想收集该用户的姓名和电子邮件。所以我使用下面的代码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
<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(“位置”,目标); }
- 从表单中删除操作属性
- 将单击事件写为 受保护的无效btnSubmit\u单击(对象发送者,ImageClickEventArgs e) { var target=@; Response.Status=“307临时重定向”; AddHeader(“位置”,目标); }
protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
{
//some code
}