Получение опубликованных данных из динамической формы с помощью MVC - PullRequest
0 голосов
/ 16 ноября 2010

У меня есть страница, содержащая форму, часть которой генерируется динамически на основе того, что есть в заказе.

<% 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 Ответ

2 голосов
/ 16 ноября 2010

Не можете ли вы изменить соглашение об именах на:

<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

И оставьте связующее по умолчанию для модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...