我有IEnumerable
个管理员Model.managers
,我希望获取ID
值managers.manager_id
和text
值managers.manager_name
我还在Model.SelectedManager
处拥有一个选定的经理值,其中包含manager_id
我要做的是将所有这些值填入Html.DropDownListFor
它需要是所有manager_id
和manager_name
的列表,然后自动选择存储在Model.SelectedManager
的管理器这可能是我设置它的方式吗? / p>
public string SelectedManager { get; set; }
public virtual IEnumerable<managements> managers { get; set; }
答案 0 :(得分:2)
我相信你正在努力做到以下几点:
在服务层(或控制器)中,您从管理员List
中抓取SelectListItem
IEnumerable
:
model.ManagerList = managers.Select(i => new SelectListItem()
{
Text = i.manager_name,
Value = i.manager_id.ToString()
}).ToList());
然后,在您的视图模型中,您需要SelectedManager for Id和此经理列表(SelectListItem
):
public string SelectedManager { get; set; }
public List<SelectListItem> ManagerList {get; set;}
并且在您的视图中,您将ManagerList
对象与剃刀助手一起使用:
@Html.DropDownListFor(m => Model.SelectedManager, Model.ManagerList,
new {@class = "form-control input-sm whatever-css-class"})
希望这有帮助。
修改:我始终将所选的ID用作int
而不是string
。所以我实际上并未将其作为string
进行测试,如果int
不起作用,您可能希望将其用作string
。