如何在asp.net MVC中创建checkboxList,然后使用checkboxList处理事件
发布于 2011-02-02 16:32:05
你可以有一个视图模型:
public class MyViewModel
{
public int Id { get; set; }
public bool IsChecked { get; set; }
}
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new[]
{
new MyViewModel { Id = 1, IsChecked = false },
new MyViewModel { Id = 2, IsChecked = true },
new MyViewModel { Id = 3, IsChecked = false },
};
return View(model);
}
[HttpPost]
public ActionResult Index(IEnumerable<MyViewModel> model)
{
// TODO: Handle the user selection here
...
}
}
视图(~/Views/Home/Index.cshtml
):
@model IEnumerable<AppName.Models.MyViewModel>
@{
ViewBag.Title = "Home Page";
}
@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.IsChecked)
现在,当您提交表单时,您将获得一个值列表,并且对于每个值,无论它是否被选中。
发布于 2011-12-17 12:53:29
还有一种更简单的方法--从这里使用定制的@Html.CheckBoxList()扩展:http://www.codeproject.com/KB/user-controls/MvcCheckBoxList_Extension.aspx
使用示例(带有Razor视图引擎的MVC3视图):
@Html.CheckBoxList("NAME", // NAME of checkbox list
x => x.DataList, // data source (list of 'DataList' in this case)
x => x.Id, // field from data source to be used for checkbox VALUE
x => x.Name, // field from data source to be used for checkbox TEXT
x => x.DataListChecked // selected data (list of selected 'DataList' in thiscase),
// must be of same data type as source data or set to 'NULL'
)
https://stackoverflow.com/questions/4872192
复制相似问题