ASP.NET MVC 4 - 下拉所选值不起作用
本文关键字:不起作用 NET MVC ASP | 更新日期: 2023-09-27 18:31:39
在我的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 中的选择时,我发现没有一个选项被选中属性,但是当我调试我的控制器方法时,我可以看到总是其中一个选择列表项具有专有的 Selected=true。为什么当我的视图正在渲染时它突然消失?
好的,
我已经找到了结果。我只需要将类型从枚举更改为 int 并正确填充它。一切正常!:)