: MVC Html.CheckBox and form submit issue正確的提交形式與基於自動生成的控制
讓我們看看下面的例子。查看:
<% 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)
等
Andrey,我發佈了另一個解決方案。嘗試一下。 – 2009-06-17 20:04:41