CheckBoxList С в MVC3.0
Как я могу создать список флажков в asp.net MVC, а затем для обработки события с помощью checkboxList
2 ответа:
вы могли бы иметь модель вид:
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)
теперь, когда вы отправляете форму, вы получите список значений и для каждого значения, проверено ли оно или нет.
есть еще более простой способ-использовать пользовательский @Html.Расширение CheckBoxList () отсюда: http://www.codeproject.com/KB/user-controls/MvcCheckBoxList_Extension.aspx
пример использования (MVC3 вид с Razor view engine):
@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' )