可以在MVC中的One View上处理多个Post Form表单操作

时间:2011-06-30 12:37:47

标签: asp.net-mvc asp.net-mvc-2 forms http-post

如果我可以在mvc视图中使用form = post,下面是用于形成post的示例,目前无效: 编辑:当点击图像时,jquery正在提交带有id frmWorldPay的表单

        $("#pay").click(function () {
       // $("#frmWorldPay").(function () {
       if ($("#terms").attr("checked")) {
        $("#frmWorldPay").submit();
        alert("sss");
         // return true;
        } else {
            alert("Please agree to the terms and conditions.");
            return false;
        }
    });

                 <% using (Html.BeginForm()) {%>

                    <table id="cart" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                            <th>
                                Event
                            </th>
                            <th>
                                Item
                            </th>
                            <th>
                                Quantity
                            </th>

                        </tr>
                        <% 
                            foreach (var bookingItem in Model.BookingItems)
                            {%>
                        <tr>
                            <td>
                                <%: ViewBag.Name %>
                            </td>
                            <td>
                                <%: Product.Description %>
                            </td>
                            <td>
                                <%: bookingItem.Quantity%>
                            </td>

                        </tr></table>
                        <%  } %>
                     <% { %>  if (ViewBag.mode == "confirm")
                       { %>
                            <input type="submit" value="Confirm" />
                    <% } %>


                    <form method="post" action="https://secure.wp3.rbsworldpay.com/wcc/purchase" id="frmWorldPay">

                    <input type="hidden" name="instId" value="01" />
                    <input type="hidden" name="cartId" value="<%: Model.GUID %>" />
                    <input type="hidden" name="currency" value="GBP" />

                    <input type="hidden" name="testMode" value="100" />
                     </form> if (ViewBag.mode == "Checkout")
                       { %>

                            <div id="worldPayBtnWrap">

                   <p> <%: Html.CheckBox("terms") %> by ticking this box you are agreeing to our <%: Html.ActionLink("terms & conditions", "Terms", "About")%></p>
                        <input type="image" src="/content/images/btnWorldPay.png" alt="Pay via World Pay" id="pay" />
                    </div>
                    <% } %>

2 个答案:

答案 0 :(得分:2)

您可以在一个网页中拥有多个表单,但不能嵌套它们。

您的外部表单嵌套在MVC表单(using (Html.BeginForm()) { })中,因此无效。

答案 1 :(得分:1)

我已经解决了这个问题,实际上我的输入是在同一个帖子方法,因此只有一个表单发布而另一个输入没有发布,上面的修改工作正常,虽然它不是一个干净的解决方案,因为我将很乐意使用的时间,以后会清理它。:)