添加预选值时 Html.DropDownListFor 值重复

问题描述

我的代码是这样的

List<String> ddlData = new List<string>();
ddlData.Add("--Select--");
ddlData.Add("Manager");

@Html.DropDownListFor(n => n.myddl,new SelectList(ddlData),"Manager",new { @class = "custom-select" })

对我来说一切都很好,但是当 Dropdown 加载时,它会加载两个“Manager”。我只想填充和预选“经理”ddlData 项。

解决方法

如果在视图中定义了 ddlData,您可以尝试:

@Html.DropDownListFor(m => ddlData,ddlData.Select(d => { return new SelectListItem() { Selected = (d.ToString() == "Manager"),Text = d,Value = d }; }),null,new { @class = "custom-select" })

但是如果 ddlData 作为参数传递给视图并且视图模型定义为 @model IList<string> 以下行也将正确填充 DropDownList

@Html.DropDownListFor(m => Model.GetEnumerator().Current,Model.Select(d =>
    {
        return new SelectListItem() { Selected = (d.ToString() == "Manager"),Value = d };
    }),new { @class = "custom-select" })

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...