所以我在我的观点中有这个(我把它分解为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
不知何故,它只显示列表中的第一项。 有任何想法吗?或者我只是累了,错过了一些非常简单的东西?
答案 0 :(得分:1)
除了model.Creator
中的Selected
之外,设置SelectList
值。
model.Creator = Model.CurrentUser.Id;
最好在Controller
而不是View
中执行此类操作。