假设您使用具有动态数量的表单元素的ASP.NET MVC创建表单.
例如,您需要为每个产品选中一个复选框,并且产品数量会逐日变化.
您如何处理发布回控制器的表单数据?您无法在操作方法上设置参数,因为您不知道将返回多少表单值.
只需为每个复选框指定唯一的名称值:
" name="<%= "approveCheck" + recordId %>" type="checkbox" />
然后在提交后解析Action中的表单值列表:
foreach (var key in Request.Form.Keys) { string keyString = key.ToString(); if (keyString.StartsWith("approveCheck", StringComparison.OrdinalIgnoreCase)) { string recNum = keyString.Substring(12, keyString.Length - 12); string approvedKey = Request.Form["approveCheck" + recNum]; bool approved = !String.IsNullOrEmpty(approvedKey); // ...
您不需要将表单值作为参数传递; 你可以从Request.Form中获取它们.
另一个选择:编写模型绑定器以将列表更改为表单提交的自定义类型.