DropDownListFor选定值无效

时间:2015-02-01 12:45:55

标签: html asp.net-mvc razor html-helper html.dropdownlistfor

所以我在我的观点中有这个(我把它分解为foreach,所以我可以正确调试它)。根据创建的对象,它看起来很好。我得到1个具有所选真项的项目。

@{
    var useritems = new List<SelectListItem>();
    foreach (var si in Model.UserList)
    {
        if (Model.CurrentUser.Id.Equals(si.Id))
        {
            useritems.Add(new SelectListItem { Selected = true, Text = si.Username, Value = si.Id.ToString(CultureInfo.InvariantCulture) }); 
        }
        else
        {
            useritems.Add(new SelectListItem { Text = si.Username, Value = si.Id.ToString(CultureInfo.InvariantCulture) });
        }
    }
}

我想在这里做的是检查当前(已登录)用户并将选择默认值设置为他/她。

    @Html.DropDownListFor(model => model.Creator, useritems, new { id = "CreatorDDL", })

但是,这不会将用户项目中的任何对象设置为选中。即使在调试器中它显示已选择1项:true

不知何故,它只显示列表中的第一项。 有任何想法吗?或者我只是累了,错过了一些非常简单的东西?

1 个答案:

答案 0 :(得分:1)

除了model.Creator中的Selected之外,设置SelectList值。

model.Creator = Model.CurrentUser.Id;

最好在Controller而不是View中执行此类操作。