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
中。
所以我有这个想法(我把它分解成一个 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
中。