【发布时间】:2012-10-28 16:54:57
【问题描述】:
MVCContrib 网格:
@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();
}
视图模型:
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中定义的此类属性。能否请您出示您的真实代码? -
但是您只将
Id传递给您的部分,并且您从未设置布尔值CheckBox属性。你为什么不使用视图模型?为什么您的ViewModel使用IPagination<Data>属性而不是IPagination<CheckBoxViewModel>更有意义,因为您尝试在视图中生成复选框?
标签: c# asp.net checkbox asp.net-mvc-4 mvccontrib-grid