关于webforms:ASP.NET页上的多个表单

关于webforms:ASP.NET页上的多个表单

Multiple forms on ASP.NET page

来自经典的ASP背景,我习惯了页面上的多种表单,但这显然仅限于ASP.NET页面。

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

如果PayPal表单的字段值是静态的,那将没有问题,但是由于我要在服务器端操作表单(调整数量,说明,价格字段等),因此这将是一个问题。

写入数据库后,我正在考虑重定向到另一个页面,我怀疑这样做会很好,但是这可能需要一些额外的工作。

还建议我根据自己所在的位置,以编程方式呈现其他形式。也就是说,使用占位符,然后在Page_Load上首先添加一个DB Form(带有子控件),然后在Postback之后添加PayPal表单。

对于您来说,这种情况已经很普遍了,因此,如果您有首选的方法,那么我正在寻求意见建议和任何相关的代码示例。

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

提前致谢...

克里斯


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

要使PayPal正常运作,有很多答案。但由于它是一种学习工具,可能会作弊。老实说,我将使用成熟的PayPal API,而不是使用某种形式的简化方法(其附加优点是可以使您学到更多东西)。

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


也许我对这个问题有误解,但您不能简单地在表单内有2个div,但在任何时候都只能看到一个div。例如

1
2
3
4
5
6
7
8
<form id="Form1" method="post" runat="server">
   
         
   
   
         
   
</form>

然后,在btnSubmitFirst_Click中:

1
2
 doSubmissionToPaypal.visible=True
 getUserInput.visible = false

遵循这些原则吗?


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

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


此贝宝的解决方法是使用贝宝集成代码,因为贝宝并不总是最易于集成。辛苦的工作基本上已经为您完成。


推荐阅读