gpt4 book ai didi

asp.net-mvc - MVC5 - 如何在 DropDownListFor Html 帮助程序中设置 "selectedValue"

转载 作者:行者123 更新时间:2023-12-01 18:11:39 25 4
gpt4 key购买 nike

正如问题所说:如何在 DropDownListFor Html 帮助器中设置 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()时(或 DropDownList() )方法绑定(bind)到模型属性,其设置所选选项的属性值。

在内部,这些方法生成自己的 IEnumerable<SelectListItem>并设置Selected属性基于属性的值,因此设置 Selected代码中的属性将被忽略。唯一受到尊重的是当您不绑定(bind)到模型属性时,例如使用

@Html.DropDownList("NotAModelProperty", new SelectList(Model.TipoviDepozita, "Id", "Naziv", 2))

请注意,您可以检查 source code ,特别是SelectInternal()GetSelectListWithDefaultValue()方法来了解其详细工作原理。

要在首次渲染 View 时显示所选选项,请在将模型传递给 View 之前在 GET 方法中设置属性值

我还建议您的 View 模型包含属性 IEnumerable<SelectListItem> TipoviDepozita并且您生成 SelectList在 Controller 中

var model = new YourModel()
{
TipoviDepozita = new SelectList(yourCollection, "Id", "Naziv"),
TipPopustaId = 2 // set the selected option
}
return View(model);

因此 View 变为

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

关于asp.net-mvc - MVC5 - 如何在 DropDownListFor Html 帮助程序中设置 "selectedValue",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41719293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com