0

在过去的几年里,我一直生活在 MVC 世界中,我只是无法回到 WebForms 世界中。

我必须尝试将外部支付通道集成到 4 步流程中。最后一步涉及将一些值发布到给定的 URL。此 URL 需要具有预定义名称的值的预设列表(即,我无法更改它所期望的值)。

我遇到的问题是在我要发布的表单上填充从步骤 1-3 获得的值。

假设我需要发送 3 个值(还有更多但原理相同):

- amount
- returnurl
- name

我可以写一个表格

<form action="http://url/goes/here">
    <p>Please confirm the details below</p>
    <asp:TextBox id="amount" runat="server" />
    <asp:TextBox id="returnurl" runat="server" />
    <asp:TextBox id="name" runat="server" />
    <asp:Button id="submitme" />
</form>

并轻松地从代码隐藏中预先填充文本框(或标签,或任何我需要的)PageLoad

但是随后这些值以'ctl00$ContentBottom$WebFormControl$ctl00$'为前缀提交,因此外部url将其丢弃并抱怨没有提供任何值。它看到 'ctl00$ContentBottom$WebFormControl$ctl00$amount' 而不是 'amount'。

无论如何我可以修改发布的值的名称吗?

4

1 回答 1

0

而不是修改值的名称,您可以将它们添加到您的 aspx 页面中,如下所示

        <input type="hidden" name="billing_cust_name" value="<%=txtbox1.Text%>"> 
        <input type="hidden" name="billing_cust_address" value="<%=txtbox2.Text%>" > 
        <input type="hidden" name="billing_cust_email" value="<%=txtbox3.Text%>"> 
        <input type="hidden" name="billing_cust_notes" value="<%=txtbox4.Text%>"> 

当表单准备好发布时,更改值然后发布。

于 2013-03-28T12:03:52.720 回答