我有一个List
约20项我想用一个复选框旁边的每个(我的ViewModel上的一个Available
属性)显示给用户。ASP.NET MVC多个复选框
当提交表单时,我希望能够通过我的ViewModel上的Selections
属性将每个复选框的值传回给我的控制器方法。
我该如何去做这个使用MVC中的Form Helper类?这甚至有可能吗?
PS:我不想要一个用户可以突出显示多个项目的列表框。
我有一个List
约20项我想用一个复选框旁边的每个(我的ViewModel上的一个Available
属性)显示给用户。ASP.NET MVC多个复选框
当提交表单时,我希望能够通过我的ViewModel上的Selections
属性将每个复选框的值传回给我的控制器方法。
我该如何去做这个使用MVC中的Form Helper类?这甚至有可能吗?
PS:我不想要一个用户可以突出显示多个项目的列表框。
型号:
public class MyViewModel
{
public int Id { get; set; }
public bool Available { get; set; }
}
控制器:
public class HomeController: Controller
{
public ActionResult Index()
{
var model = Enumerable.Range(1, 20).Select(x => new MyViewModel
{
Id = x
});
return View(model);
}
[HttpPost]
public ActionResult Index(IEnumerable<MyViewModel> model)
{
...
}
}
查看~/Views/Home/Index.cshtml
:
@model IEnumerable<AppName.Models.MyViewModel>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="OK" />
}
编辑模板~/Views/Home/EditorTemplates/MyViewModel.cshtml
:
@model AppName.Models.MyViewModel
@Html.HiddenFor(x => x.Id)
@Html.CheckBoxFor(x => x.Available)
最好的办法是创建一个可重用的模板。我在家里有一些代码,可以在今晚晚些时候发布。
也许在同一时间检查类似的帖子SO。