MVCContrib предоставляет несколько превосходных расширений для множества элементов управления, а также имеет CheckBoxList.
Чтобы начать работу с MVCContrib, прочитайте это
Вам нужно будет использовать строго типизированное представление и включить этот оператор импорта в представление:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.HomeModel>" %>
<%@ Import Namespace="MvcContrib.FluentHtml" %>
Этот пример работает. Вот код на представлении.
<%= this.CheckBoxList("UserType").Options(Model.UserTypeOptions) %>
Вот контроллер.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Submit(HomeModel viewModel)
{
if (viewModel.SelectedUserType == UserTypeEnum.Normal)
{
// do something
}
return View("Index", viewModel);
}
Вот модель.
public enum UserTypeEnum
{
Administrator = 0,
SuperUser,
Supervisor,
Normal,
}
public class HomeModel
{
[Required]
public string Name { get; set; }
public List<SelectListItem> UserTypeOptions { get; set; }
public string UserType { get; set; }
public UserTypeEnum SelectedUserType
{
get
{
return (UserTypeEnum) Enum.Parse(typeof (UserTypeEnum), UserType);
}
}
public HomeModel()
{
UserTypeOptions = new List<SelectListItem>
{
new SelectListItem{Text = "Administrator", Value = ((int)UserTypeEnum.Administrator).ToString()},
new SelectListItem{Text = "SuperUser", Value = ((int)UserTypeEnum.SuperUser).ToString()},
new SelectListItem{Text = "Supervisor", Value = ((int)UserTypeEnum.Supervisor).ToString()},
new SelectListItem{Text = "Normal", Value = ((int)UserTypeEnum.Normal).ToString()},
};
}
}