MVC3.0中的CheckboxList
我怎样才能在asp.net MVC创build一个checkboxList,然后用checkboxList处理事件
你可以有一个视图模型:
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" /> }
和相应的Editor模板( ~/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
用法示例(带有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' )
- 扩展方法不能dynamic分派
- “System.Web.Mvc.MvcWebRazorHostFactory”types的expression式不能用于返回types“System.Web.WebPages.Razor.WebRazorHostFactory”
- Html.RenderPartial给我奇怪的重载错误?
- Javascript,剃刀和逃生字符。 像撇号一样
- 什么是routes.IgnoreRoute(“{资源} .axd / {* pathInfo}”)
- 如何在ASP.Net MVC 3中返回HttpNotFound()的视图?
- 在我的项目中遇到同名多个控制器的问题
- MVC 3布局页面,剃刀模板和DropdownList
- ActionName的用途