C# ASP.NET和经典的HTML表单

C# ASP.NET和经典的HTML表单,c#,asp.net,html,forms,hidden-field,C#,Asp.net,Html,Forms,Hidden Field,我正在实施一个标准的支付系统,它将一些信息发送到第三方表单。我有一个结帐对象,它存储了我所有的购物信息:ID、购买的产品、价格——随便你怎么说 人们被转移到一个ASPX页面,该页面的实现如下所示 目前我有以下问题: 在具有runat=server的输入上发送的值为0。因此我得到一个错误。但是,在代码隐藏中的OnPreInit事件中,我设置了amount、accepturl和orderid的值。我可以看到隐藏字段在加载页面时获得了正确的信息,但是当表单被触发时(这显然发生在OnPreInit事件之

我正在实施一个标准的支付系统,它将一些信息发送到第三方表单。我有一个结帐对象,它存储了我所有的购物信息:ID、购买的产品、价格——随便你怎么说

人们被转移到一个ASPX页面,该页面的实现如下所示

目前我有以下问题:

在具有runat=server的输入上发送的值为0。因此我得到一个错误。但是,在代码隐藏中的OnPreInit事件中,我设置了amount、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事件中设置输入值。ViewState在PreInit期间不可用,尽管可能存在一些异常


如果您必须在PreInit期间执行逻辑,那么这可能有一个解决方法。

您可以使用,并将其.Text设置为。我已尝试在OnLoad、OnInit、Page_Load和PreInit中设置值。还是不走运。有什么想法吗-/当值为0时,您何时获得这些值?你能发那个密码吗?确保在Init、Load或以后的事件中获取的值不是PreInit。我的问题是我引用了错误的输入字段,因为我给了它们一个ID和runat=server,ID与名称不同。名字改成了我的ID。你的帖子很有帮助——这也是一个问题:-