@Html.DropDownListFor
需要SelectListItem列表。有没有办法在这里使用自定义对象而不是选择列表项,并告诉下拉列表自定义对象的哪些属性用于值和文本?或者有一种简单的方法可以将我的客户对象转换为SelectListItem吗?
我有一个Status对象: public string StatusCode {get; set;} public string StatusCodeDescription {get; set;}
所以现在我必须编写一个for循环来将状态转换为我所有列表的SelectListItem ...这似乎需要更简单的方法......
答案 0 :(得分:6)
@ Html.DropDownListFor需要一个SelectListItem列表。有没有 这里使用自定义对象的方式而不是选择列表项并告诉 下拉列表要用于的自定义对象的属性 价值和文字?
您可以使用SelectList constructor
获取3个参数:IEnumerable<T>
和2个字符串,表示自定义类型的值和文本属性的名称:
@Html.DropDownListFor(
x => x.SelectedStatusCode,
new SelectList(
Model.Satuses,
"StatusCode",
"StatusCodeDescription"
)
)
在此示例中,我们假设Model.Satuses
是IEnumerable<StatusViewModel>
类型的属性,其中StatusViewModel
包含至少2个属性,分别绑定下拉列表的值和文本:
public class StatusViewModel
{
public string StatusCode { get; set; }
public string StatusCodeDescription { get; set; }
...
}