我有一个网页表单,它将一些字段发布到付款网站。示例使用的结构是
<form method="post" action="<%= FormAction %>">
<input type="hidden" name="Hash" value="<%= sHash %>" />
<input type="hidden" name="MID" value="<%= sMID %>" />
......
<div class="submit">
<input type="submit" value="Post Data" />
</div>
在示例项目中,他们在代码隐藏文件中(在声明它们之后)使用值设置相同的变量。单击上面的按钮时,它会将数据发布到相关页面而不会出现错误,并且用户将被重定向到付款页面。
所以我现在在我网站上的图片按钮的点击事件下尝试相同但不起作用:
<asp:ImageButton ID="ButtonCheckout" runat="server" Text="Go to payment page" ImageUrl="~/Images/Payment.gif" />
当然它不起作用,我添加了上面的所有标记并添加了所有示例代码。
当我运行应用程序时,它会闪烁并停止。我看着提琴手并注意到它根本不会进入支付网站。该主页已在其中声明 - 如果这有任何区别。
阅读它似乎我可以使用图像按钮发布数据并执行与提交按钮完全相同(提交按钮在上面是来自支付提供商的示例应用程序的一部分)通过使用onClick事件使用Javascript进行标记,但是我很难理解如何将它们组合在一起,并且失去了我可以做的下一步以使其工作?
答案 0 :(得分:1)
您不能只使用图片按钮发布表单数据。您需要提交表单数据 - 否则您的图像按钮只是一个链接。我用Javascript做了很多。
尝试将this.form.submit()
添加到客户端点击。或者为表单命名并使用this.formname.submit()
其中任何一个都应发布您的表单数据。
答案 1 :(得分:-1)
You can such so write:
<form id="Form2" method="post" runat="server" action="<%= FormAction %>">
<input type="hidden" name="Hash" value="<%= sHash %>" />
<input type="hidden" name="MID" value="<%= sMID %>" />
......
<div class="submit">
<asp:ImageButton ID="ButtonCheckout" runat="server" Text="Go to payment page"/>
</div>
</form>
but you must add a few attributes in top of web page,eg:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" EnableEventValidation="false" EnableViewStateMac="false" ValidateRequest="false" ViewStateEncryptionMode="Never" %>