我有一个ASP.NET webforms应用程序,并且要求将表单添加到页面,该页面将发布到外部URL,即支付处理提供程序。表单需要包含特定的隐藏输入,其中一个是表单数据的散列字符串表示。
我理解给定webforms的限制我不能在主<form runat="server" />
中嵌套第二种形式。但是,我没有选择在主表单之外找到我的表单(由于此站点内置于CMS)。
我知道我可以使用带有PostBackUrl属性的ASP.NET Button控件,该属性允许表单发布到特定的URL。但是,这会在页面上发布每个表单元素,包括__VIEWSTATE,__ EVENTTARGET等。
这不是理想的行为。我只想提交具体数据。此外,这使得生成表单的哈希表示变得困难(不可能?),因为这必须包括viewstate等。
我也没有从后面的代码发布数据的选项,因为客户端应该继续在目标URL上进行交互。
我有什么选择吗?这一定是可能的,但互联网搜索的回报很少。
更新:我正在寻找一种不依赖Javascript的解决方案。
答案 0 :(得分:0)
一种选择是使用ajax。只需使用它来发布您需要的数据,您甚至不需要重定向或任何东西。你可以控制所有的东西(当然,只要用户开启了javascript)。
答案 1 :(得分:0)
您可以使用ajax更新面板。 将asp:scriptManager放在页面
上 <asp:scriptManager></asp:scriptManager>
<asp:updatePanel runat="server">
<contentTemplate>
your controls to be submitted to next page
<asp:button><asp:button>
</contentTemplate>
</asp:updatePanel>
并将其他控件放在updatePanel之外。