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。为什么当我的视图正在渲染时它突然消失?

ASP.NET MVC 4 - 下拉所选值不起作用

好的,

我已经找到了结果。我只需要将类型从枚举更改为 int 并正确填充它。一切正常!:)