当我 select DropDownList 中的项目时,选择未设置为真

Selected is not set to true when I select an item in DropDownList

我看过this question,但还是不清楚以下内容:

我有一个 SelectListItem,我是这样填充的:

MySelectList.Insert(0, new SelectListItem { Text = "Text0", Value = "0" });
MySelectList.Insert(1, new SelectListItem { Text = "Text1", Value = "1" });

在我看来我是这样显示的:

@Html.DropDownListFor(m => m.MyId, Model.MySelectList, new { @class = "form-control" })

如果我 select Text0 和 post 模型到控制器,MyId 包含 selected 值,这是完美的。

但是当我检查 MySelectList 时,列表中的任何项目的 Selected 值都没有设置为 true:

我知道我可以使用 MyId 找到 selected 值,但是当用户 select 是下拉列表中的项目和 post 表格?

这并不意味着框架会自动更新。当您检查 HTTP 请求时,您会注意到根本只传输了 MyId 的值。目标视图模型,当由模型绑定器重建时,根本不会填充 MySelectList,当您在其中看到一些数据时,那可能是因为您在请求后再次填充它。

当然,您可以自己轻松执行更新:

var selectedItem = Model.MySelectList.FirstOrDefault(x => x.Value == Model.MyId);
if (selectedItem != null)
{
    selectedItem.Selected = true;
}

问题是,是否对您的进一步处理有帮助。