你可以在页面上的同一个网址上有多个表单吗?

时间:2011-07-13 21:23:39

标签: html asp.net-mvc

我有一个MVC应用程序列出了一些产品,我有一个+和 - 图形来增加/减少数量。我将它们包含在表单标签中,并有一些隐藏字段,一个用于产品ID,另一个用于数量。两种形式都使用相同的控制器方法。唯一的区别是数量1增加-1减少。奇怪的是浏览器只在+周围输出1个表单字段(页面上的第二个表单)。是否不可能将相同的表单标记转到页面上的同一个URL?我甚至尝试输入一个唯一的id属性,但无济于事。

当我输入时,我认为我可以将图形转换为图像类型的输入,其值为数量并将它们包装在同一个帖子中,不确定是否可行。

编辑:添加代码

<td style="text-align: right; width: 27px;">
            <% using (Html.BeginForm("Update", "Cart", FormMethod.Post, new { id = "form-remove" }))
               { %>
            <%= Html.Hidden("stockId", line.StockId)%>
            <%= Html.Hidden("quantity", -1)%>
            <%= Html.Hidden("returnUrl", ViewData["returnUrl"])%>
            <input type="image" class="icon icon-down" src="/Content/Images/spacer.gif" />
            <% } %>
        </td>
        <td style="text-align: right; width: 20px;">
            <% using (Html.BeginForm("Update", "Cart", FormMethod.Post, new { id = "form-add" } ))
               { %>
            <%= Html.Hidden("stockId", line.StockId)%>
            <%= Html.Hidden("quantity", 1)%>
            <%= Html.Hidden("returnUrl", ViewData["returnUrl"])%>
            <input type="image" class="icon icon-up" src="/Content/Images/spacer.gif" />
            <% } %>
        </td>
        <td style="text-align: right; width: 27px;">
            <% using (Html.BeginForm("Remove", "Cart"))
               { %>
            <%= Html.Hidden("stockId", line.StockId)%>
            <%= Html.Hidden("returnUrl", ViewData["returnUrl"])%>
            <input type="image" class="icon icon-remove" src="/Content/Images/spacer.gif" />
            <% } %>
        </td>

以上是我的MVC视图中包含图标的摘录。即使将id属性添加到表单,更新数量也会显示1,但-1不会显示。如果我将操作方法​​修改为'AddItem'和'RemoveItem'而不是'Update',那么所有渲染都很好,但是我几乎复制了我的代码,唯一的区别就是数量参数。

1 个答案:

答案 0 :(得分:0)

是的,你可以在一个页面上有多个表格,这里有一篇关于如何做的博客文章“asp net mvc handling multiple form actions on one view”另一种选择是使用像这样的“easy ajax with aspnet mvc and jquery”的ajax请求

相关问题