5

来自经典 ASP 背景,我习惯于在一个页面上使用多个表单,但这显然仅限于 ASP.NET 页面。

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

如果 PayPal 表单的字段值是静态的,则不会有问题,但由于我想在服务器端操作表单(调整数量、说明、价格字段等),这是一个问题。

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

也有人建议我,我可以以编程方式呈现不同的形式,具体取决于我在循环中的位置。也就是说,使用占位符,在 Page_Load 上,我最初会添加一个 DB 表单(带有子控件),然后在回发之后添加 PayPal 表单。

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

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

提前致谢...

克里斯

4

4 回答 4

8

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

让 PayPal 工作有很多答案。但因为它是一种可能会作弊的学习工具。老实说,我会看完整的 PayPal API,而不是使用有点简单的形式的方法(还有一个额外的好处,那就是它应该更多地扩展你的学习)。

否则,是的,在服务器端表单之外设置一个 HTML 表单,并在其中添加一个文字并在其中写入点点滴滴。

于 2008-09-18T10:07:29.950 回答
1

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

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

于 2008-09-18T10:06:26.287 回答
1

也许我误解了这个问题,但你不能在表单中简单地有 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

类似的东西?

于 2008-09-18T10:08:03.320 回答
0

此 paypal 的解决方法是使用Paypal 集成代码,因为 Paypal 并不总是最易于集成。艰苦的工作基本上是为你完成的。

于 2008-09-18T11:03:05.807 回答