DropDownListFor 所选值不起作用

DropDownListFor selected value not working

所以我有这个想法(我把它分解成一个 foreach 以便我可以正确地调试它)。根据创建的对象,它看起来不错。我得到 1 件商品 selected 为真。

@{
    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) });
        }
    }
}

我在这里要做的是检查当前(登录)用户并将 select 默认设置为 him/her。

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

然而,这不会将 useritems 中的任何对象设置为 selected。即使在调试器中它也显示 1 项已 selected: true

不知怎的,它只显示列表中的第一项。 有任何想法吗?还是我只是累了,错过了一些非常容易的事情?

SelectList 中设置 model.Creator 值以及 Selected

model.Creator = Model.CurrentUser.Id;

最好在你的 Controller 中做这样的事情,而不是在你的 View 中。