[英]ASP.NET and the classic HTML form
我正在实施一个标准的付款系统,该系统会将一些信息发送到第三部分表格。 我有一个结帐对象,其中存储了我所有的购物信息:ID,购买的商品,价格-随便命名。
人们被转移到ASPX页面,该页面具有如下所示的实现。
目前,我有以下问题 :
在具有runat =“ server”的输入上发送的值是0。因此出现错误。 但是,在后面代码中的OnPreInit事件中,我设置了value,accepturl和orderid的值。 我可以看到页面加载时隐藏字段获得了正确的信息-但是当表单被触发时(显然发生在OnPreInit事件之前),它仍然为0。
我该如何解决这个问题? 基本上,我需要使用一个HTML表单来打开一个弹出窗口(必须在页面加载时显示该窗口),在其中必须设置隐藏字段。 应该很简单,但是在使用了数小时之后,我将非常感谢您的帮助。
目前,我的实现是这样的:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BetalingMedKort.aspx.cs" Inherits="BetalingMedKort" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript" src="http://www.epay.dk/js/standardwindow.js"></script>
<title></title>
</head>
<body onload="open_ePay_window()">
<form action="SomeUrl" runat="server" method="post" name="ePay" target="ePay_window" id="ePay">
<input type="hidden" name="merchantnumber" value="MyStaticMerchantNumber" />
<input type="hidden" name="language" value="1" />
<input type="hidden" name="currency" value="208" />
<input type="hidden" name="amount" id="amountField" runat="server" />
<input type="hidden" name="accepturl" id="acceptUrlField" runat="server" />
<input type="hidden" name="orderid" id="orderIdField" runat="server" />
<input type="hidden" name="declineurl" value="SomeUrl" />
</form>
<div>
If the ePay Payment Window does not open automatically please click on the button below to open it.
<br /><br />
Notice! If you are using a pop-up blocker, you must hold down the CTRL key as you click the button.
<br /><br />
<input type="button" value="Open the ePay Payment Window" onClick="open_ePay_window()">
</div>
</body>
</html>
非常感谢...
尝试在页面的Init或Load事件中设置输入值。 在PreInit期间,ViewState不可用(尽管可能会有一些例外)。
如果您绝对必须在PreInit期间执行逻辑,则此页面可能为您提供解决方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.