我已经搜索了几天寻找并找出这个问题的多方向下拉列表答案。
我有以下型号
public class Person()
{
public int Id { get; set; }
public string Name { get; set; }
public Gender Gender { get; set; }
}
我试图将Gender作为枚举,字符串,SelectListItem ....(列表继续!)
在我的HTTPGET人剃须刀视图中,我想添加一个新的Person,下拉列表生成一系列性别(男性,女性......)
当用户提交表单时,它会将Person传递给HTTPPOST Person视图,并附加更新的Gender。
我不介意性别是什么类型,只要它可以在控制器和两种方式之间发布。
亲切的问候
答案 0 :(得分:2)
使用标准@Html.DropDownListFor(...)
帮助器确实可以实现这一点。
但是,在创建视图时,您需要将Enum转换为IEnumerable<SelectListItem>
才能生效。有关将Enum转换为正确类型的帮助方法的示例,请参阅this answer。
如果在代码中使用此hepler方法,则可以执行以下操作:
Html.DropDownListFor(m => m.Gender , ListExtensions.ToSelectList(Model.Gender, m => m.Gender))