MVCContrib Grid:
@model ViewModel
@using (Html.BeginForm("SendData", "Home", FormMethod.Post))
{
@Html.Grid(Model.List).Columns(c =>
{
c.For(x => x.Id);
c.For(x => x.Name);
c.For(x =>Html.Partial("Partial/CheckBoxTemplate", new CheckBoxViewModel { Id = x.Id })).Named("Options");
})
@Html.SubmitButton()
}
Действие после публикации контроллера:
public ActionResult SendData(List<CheckBoxViewModel> list)
{
return View();
}
ViewModels:
public class CheckBoxViewModel
{
public int Id { get; set; }
public bool CheckBox { get; set; }
}
public class ViewModel
{
public IPagination<Data> List { get; set; }
}
public class Data
{
public int Id { get; set; }
public string Name { get; set; }
}
Частичный вид:
@model MvcApplication1.Models.CheckBoxViewModel
@Html.HiddenFor(x => x.Id)
@Html.CheckBoxFor(x => x.CheckBox)
Все отмеченные флажками по умолчанию не отмечены.
Как я могу получить все отмеченные значения флажков в моем действии SendData
?
Partial/CheckBoxTemplate.cshtml
? Также кажется, что вы привязаны к некоторому свойствуName
(c.For(x => x.Name);
), но я не вижу такого свойства, определенного в вашемCheckBoxViewModel
. Не могли бы вы показать свой настоящий код? - person Darin Dimitrov   schedule 28.10.2012Id
и никогда не устанавливаете логическое свойствоCheckBox
. Почему вы не используете модель представления? Почему вашViewModel
использует свойствоIPagination<Data>
вместоIPagination<CheckBoxViewModel>
, что имело бы гораздо больше смысла, поскольку вы пытаетесь создать флажки в своем представлении? - person Darin Dimitrov   schedule 28.10.2012