过去几年一直生活在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 $',因此外部网址会将其抛弃并抱怨没有提供任何值。它看到'ctl00 $ ContentBottom $ WebFormControl $ ctl00 $ amount'而不是'amount'。
无论如何我可以修改发布的值的名称吗?
答案 0 :(得分: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%>">
当表单准备好发布时,更改值然后发布。