У меня есть страница, содержащая форму, где ее часть динамически генерируется исходя из того, какие SKU находятся на заказ.Получение данных из динамической формы с MVC
<% 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">£<%= i.PRIC%></td>
<td style="text-align: left"><%= i.QUAN%></td>
<td style="text-align: left">£<%= 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%>
, как я могу получить значения для них в моем контроллере, обрабатывает сообщение формы?
EDIT: Важно также отметить, что ни одно из этих полей не является обязательным, а количество текстовых полей зависит от каждого заказа.
Если связующее по умолчанию имеет трудности, вы можете перечислить Request.Form.Where (q => q.Name.StartsWith ("skuns [")); – Amethi
До тех пор, пока вы уважаете соглашение об именах, связующее устройство по умолчанию никогда не сталкивается с трудностями и лучше использует строго типизированные аргументы. –