让我们考虑以下示例。看法:
<% using(Html.BeginForm("Retrieve", "Home")) %>
<% { %>
<%foreach (var app in newApps) { %>
<tr>
<td><%=Html.CheckBox(""+app.ApplicationId )%></td>
</tr>
<%} %>
<input type"submit"/>
<% } %>
控制器:
List<app>=newApps; //Database bind
for(int i=0; i<app.Count;i++)
{
var checkbox=Request.Form[""+app[i].ApplicationId];
if(checkbox!="false")// if not false then true,false is returned
}
提出的解决方案是关于手动解析 Request.Form 对我来说似乎超出了 MVC 概念。它在对该控制器方法进行单元测试时出现问题。在这种情况下,我需要生成模拟 Request.Form 对象,而不是作为输入参数传递的一些 ViewModel。
问:有没有其他类似的提交表单的解决方案,以便包含提交的控件集合的 ViewModel 对象作为输入参数传递给控制器方法?
例如:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Retrieve(AppList[] applist)
或者
public ActionResult Retrieve(AppList<App> applist)
ETC