На основании:
MVC Html.CheckBox и форма отправить вопрос
Давайте рассмотрим следующий пример. Вид:
<% 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)
и т.д. * * тысяча двадцать-одна