【问题标题】:Multiple forms on ASP.NET pageASP.NET 页面上的多个表单
【发布时间】:2010-09-10 14:51:33
【问题描述】:

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

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

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

我正在考虑在写入数据库后重定向到不同的页面,我怀疑这会很好,但这可能是不必要的。

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

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

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

提前谢谢...

克里斯

【问题讨论】:

    标签: asp.net webforms


    【解决方案1】:

    你可以有多个表单,只有一个表单可以有runat="server"属性。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我会看看这个,但由于这是一个学习练习,如果可能的话,我想“手动”完成。
      【解决方案3】:

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

      类似的东西?

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2014-06-03
          • 1970-01-01
          • 2011-01-27
          • 2011-03-19
          • 2012-07-19
          • 2011-10-27
          • 1970-01-01
          • 1970-01-01
          • 2020-09-16
          相关资源
          最近更新 更多