在我的ViewModel中,我有两个字段:
public AdTypeEnum Type { get; set; }
public IList<SelectListItem> TypeEnumList { get; set; }
我如何填写清单:
public void SetLists()
{
TypeEnumList = new List<SelectListItem>();
TypeEnumList.Add(new SelectListItem { Value = "0", Text = "Select the type"});
foreach (var en in Enum.GetValues(typeof(AdTypeEnum)).Cast<AdTypeEnum>())
{
TypeEnumList.Add(new SelectListItem
{
Value = ((int)en).ToString(),
Text = en.ToString(),
Selected = Type == (AdTypeEnum)en ? true : false
});
}
}
然后我只是在我的视图上下拉:
@Html.DropDownListFor(x => x.Type, Model.TypeEnumList, new { @class = "form-control" })
但是所选的值不会呈现,并且始终选择第一个选项。当我检查HTML中的select时,我发现没有一个选项被选中属性,但是当我调试我的控制器方法时,我可以看到总是一个selectListItem具有propety Selected = true。为什么在我的视图渲染时它会突然消失?
答案 0 :(得分:0)
好的,我已经找到了结果。我只需要将Enum中的Type更改为int并正确填充它。一切正常! :)