我有一个包含表单的页面,其中部分表单是根据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">£<%= 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%>
的命名约定,我如何获得在我的控制器中处理表单的值?
编辑:同样重要的是要注意,这些字段都不是必填字段,每个订单的文本框数量也不同。
答案 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
让默认的模型绑定器完成工作。