使用MVC从动态表单获取发布数据

时间:2010-11-16 09:28:54

标签: asp.net-mvc forms

我有一个包含表单的页面,其中部分表单是根据SKU在订单上的动态生成的。

<% for each i in ViewData.Model %>
                    <script type="text/javascript">
                        $(function () {
                            $('#return_<%=i.SKUN%>').change(function () {
                                if ($('#return_<%=i.SKUN%>').val() > $('#qty_<%=i.SKUN%>').val()) {
                                    $('#Discrepancy').val("Yes");
                                } else {
                                    $('#Discrepancy').val("");
                                }
                            });
                        });
                    </script>
                    <tr>
                        <td style="text-align: left"><%= i.SKUN%></td>
                        <td style="text-align: left; width: 360px"><%= i.DESCR%></td>
                        <td style="text-align: left">&pound;<%= i.PRIC%></td>
                        <td style="text-align: left"><%= i.QUAN%></td>
                        <td style="text-align: left">&pound;<%= i.EXTP%></td>
                        <td style="text-align: left"><input type="hidden" name="qty_<%=i.SKUN%>" id="qty_<%=i.SKUN%>" value="<%= i.QUAN%>"/><input type="text" name="return_<%=i.SKUN%>" id="return_<%=i.SKUN%>" style="width:50px;" class="required"/>
                            <%  If i.FLAG3 = "T" Then
                                   %> <img src="../../Content/images/icons/error.png" alt="This SKU is subject to a <%=Html.ViewData("RestockFee") %>% restocking fee" title="This SKU is subject to a <%=Html.ViewData("RestockFee") %>% restocking fee"/><%
                                End If%>
                        </td>
                    </tr>
                    <% Next%>

这绝不是完美的,但它现在完成了工作。

我正在努力解决的部分是因为return_<%=i.SKUN%>是一系列动态生成的文本框,每个订单都会更改,但它们仍保留return_<%=i.SKUN%>的命名约定,我如何获得在我的控制器中处理表单的值?

编辑:同样重要的是要注意,这些字段都不是必填字段,每个订单的文本框数量也不同。

1 个答案:

答案 0 :(得分:2)

无法将命名约定更改为:

<input 
    type="text"
    name="skuns[<%= index %>]"
    id="return_<%= i.SKUN %>"
    style="width:50px;"
    class="required"
    value="<%= i.SKUN %>"
/>

其中index是从0到n的递增变量。这样你的控制器动作可能如下所示:

Public Function Result(skuns As String()) As ActionResult

让默认的模型绑定器完成工作。