我已经看到了这个问题,但仍然不清楚以下内容:
我有一个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" })
如果我选择Text0并将模型发布到控制器,则 MyId 包含所选值,这是完美的。
但是当我通过时MySelectList
,列表中的任何项目的Selected
值都没有设置true
为:
我知道我可以使用 MyId 来查找选定的值,但是当用户从下拉列表中选择一个项目并发布表单时,有什么方法可以Selected
设置为true
?
这并不意味着框架会自动更新。当您检查 HTTP 请求时,您会注意到只有 Value forMyId
被传输。目标视图模型,当由模型绑定器重建时,根本不会填充MySelectList
,当您在其中看到一些数据时,那可能是因为您在请求之后再次填充它。
当然,您可以自己轻松地执行更新:
var selectedItem = Model.MySelectList.FirstOrDefault(x => x.Value == Model.MyId);
if (selectedItem != null)
{
selectedItem.Selected = true;
}
问题是,它是否有助于您的进一步处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句