【发布时间】:2017-06-02 19:46:42
【问题描述】:
正如问题所说: 如何在 DropDownListFor Html helper 中设置 selectedValue?
尝试了大多数其他解决方案,但没有一个有效,这就是我提出新问题的原因。
这些都没有帮助:
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", 2), htmlAttributes: new { @class = "form-control" })
//Not working with or without cast
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", (ProjectName.Models.TipDepozita)Model.TipoviDepozita.Single(x => x.Id == 2)), htmlAttributes: new { @class = "form-control" })
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", (ProjectName.Models.TipDepozita)Model.TipoviDepozita.Where(x => x.Id == 2).FirstOrDefault()), htmlAttributes: new { @class = "form-control" })
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", new SelectListItem() { Value="2", Selected=true}), htmlAttributes: new { @class = "form-control" })
如果可能的话,我想避免手动创建 SelectListItems 或仅用于列表的 ViewModel。
【问题讨论】:
-
DropDownListFor()根据属性TipPopustaId的值设置选定的选项(即模型绑定的工作方式)。在将模型传递给视图之前在控制器中设置其值,然后将选择正确的选项(绑定到模型属性时忽略设置Selected属性) -
我是新的,但仍在尝试愚蠢的事情。非常感谢您提醒我。
-
好的,我会在看到它时将其作为答案进行检查。
-
您确定 2 作为 ID 存在于您的列表中吗?
-
第一个评论是正确的答案。在使用 TipPopustaId 作为绑定名称的模型绑定时,无论我如何编写它(错误与否),都会忽略“selectedValue”。所以我所有的尝试都是不正确的。我只需要从控制器传递正确的值就可以了。
标签: asp.net-mvc asp.net-mvc-5 html-helper