由于具有经典 ASP 背景,我习惯了一个页面上有多个表单,但这显然仅限于 ASP.NET 页面。

然而,我有一种情况,我有一个表单收集用户的输入,将数据保存到数据库,然后我想渲染(并调整其值)一个发布到 PayPal 网站的特殊表单。

如果 PayPal 表单的字段值是静态的,就不会有问题,但由于我想在服务器端操作表单(调整数量、描述、价格字段等),所以 将要 成为一个问题。

我正在考虑在写入数据库后重定向到不同的页面,我怀疑这会工作得相当好,但这是一些额外的努力,可能是不必要的。

还有人建议我可以通过编程方式呈现不同的表单,具体取决于我所处的周期位置。也就是说,使用占位符,在 Page_Load 上我将首先添加一个 DB 表单(包含子控件),并在回发后添加 PayPal 表单。

这种情况对你们来说一定很常见,所以如果您有首选方法,我正在寻找意见建议和任何相关的代码示例。

我知道我可以过得去,但这个项目是一个学习工具,所以我想采用最佳实践。

提前致谢...

克里斯

有帮助吗?

解决方案

您可以有多种形式,只是只有一种形式可以具有 runat="server" 属性。

让 PayPal 发挥作用有很多答案;但由于它是一种学习工具,因此可能会作弊。老实说,我会考虑完整的 PayPal API,而不是使用有点简单形式的方法(还有一个额外的优点,它应该可以扩展您的学习范围)。

否则,可以,在服务器端表单之外设置一个 HTML 表单,并向其中添加文字并在其中写入一些内容。

其他提示

基本方法是在页面上使用两个面板 - 一个用于第一个表单,另一个用于第二个表单。

您可以根据要显示的表单(在 page_load 期间或渲染之前的任何时间)更改这些面板的可见性属性。

也许我误解了这个问题,但是你不能在表单中简单地放置 2 个 div,而任何时候只有一个是可见的。例如

<form id="Form1" method="post" runat="server">
    <div id="getUserInput" visible="true">
          <asp:button id="btnSubmitFirst" />
    </div>
    <div id="doSubmissionToPaypal" visible="false">
          <asp:button id="btnSubmitSecond" />
    </div>
</form>

然后,在 btnSubmitFirst_Click 中:

 doSubmissionToPaypal.visible=True
 getUserInput.visible = false

类似的事情吗?

此贝宝的解决方法是使用 贝宝集成代码 因为 Paypal 并不总是最容易集成的。艰苦的工作基本上已经为你完成了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top