从DAC层返回列表的方法,而不使用IEnumerable来绑定MVC @Html.Dro
本文关键字:SelectListItem IEnumerable 绑定 Dro @Html MVC 列表 返回 DAC 方法 | 更新日期: 2023-09-27 18:12:36
是否有任何方法可以从DAC层返回列表,而无需在DAC层使用System.Web.Mvc的IEnumerable来绑定MVC @Html.DropdownListFor()用于MVC
简单使用视图模型和填充控制器
模型public class CreateUserViewModel
{
public int RoleId { get; set;}
public IEnumerable<SelectListItem> RolesSelectList { get; set; }
}
控制器public ActionResult Create()
{
CreateUserViewModel model = new CreateUserViewModel();
model.RolesSelectList = DAC.GetRoles().Select(role => new SelectListItem() { Text = Role.Name, Value = Role.RoleId.ToString() });
return View(model);
}
视图@model CreateUserViewModel
@Html.DropDownListFor(model => model.RoleId, Model.RolesSelectList);
为什么不能直接将列表绑定到视图本身呢?如果你的模型包含一个名为Roles的IEnumerable类型的属性,那么在你的视图中你可以这样做:
@Html.DropDownListFor(m => m.RoleId, new SelectList(Model.Roles, "YourDataValueFieldName", "YourDataTextFieldName"))
换句话说,你可以通过模型传递任何满足IEnumerable接口的对象,并将其绑定到视图本身的SelectList上。