当我 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;
}
问题是,是否对您的进一步处理有帮助。
我看过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;
}
问题是,是否对您的进一步处理有帮助。