首页 > 解决方案 > ASP.NET MVC SelectList 在创建时不选择值

问题描述

我正在使用 MVC 应用程序,它创建了一个下拉列表:

@Html.DropDownListFor(model => model.Title, new SelectList(ViewBag.TitleList, "Value", "Text", Model.Title), "-- Select Title--", new {@class = "form-control"})

其他下拉菜单使用相同的代码,它们按预期工作,但在这种情况下,未选择模型的“标题”值。它确实显示了值,并且在保存时,它会保存正确的值。我还确认模型中“Title”的值在运行时是正确的。

有谁知道为什么这不是自动选择当前值?

谢谢。

标签: asp.net-mvcrazor

解决方案


如果您正在使用DropDownListFor并传入值为 0 的数据,那么无论您做什么,它都会自动默认为该值。

对此的两种解决方案是:

  1. 在 razor中手动创建 HTML select,然后通过循环填充它ViewBag.TitleList。这将为您提供更多控制权,并且您将能够更轻松地设置默认值。

<select>
    <option>Select Title</option>
    @foreach (var row in ViewBag.TitleList)
    {
        <option value="@row.Value">@row.Title</option>
    }
</select>

  1. 加载页面时使用javascript然后只需选择值“--选择标题--”

 $('#idOfDropDown[text="-- Select Title--"]').attr("selected","selected");


推荐阅读