ASP.NET MVC 4 - DropDown选择的值不起作用

时间:2016-01-23 23:23:33

标签: c# asp.net-mvc dropdown

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

1 个答案:

答案 0 :(得分:0)

好的,我已经找到了结果。我只需要将Enum中的Type更改为int并正确填充它。一切正常! :)