Asp.net mvc ASP.NET MVC-如何在绑定到列表时设置SelectList的dataValueField<;字符串>;

Asp.net mvc ASP.NET MVC-如何在绑定到列表时设置SelectList的dataValueField<;字符串>;,asp.net-mvc,Asp.net Mvc,使用列表时,如何设置SelectList的dataValueField。我希望能够在选择中设置选项的值。如果我有: List<string> list = new List<string>(); list.Add("apple"); list.Add("orange"); List List=新列表(); 添加(“苹果”); 列表。添加(“橙色”); 我希望我的html是: <select> <option value="apple">ap

使用
列表时,如何设置
SelectList
dataValueField
。我希望能够在选择中设置选项的值。如果我有:

List<string> list = new List<string>();
list.Add("apple");
list.Add("orange");
List List=新列表();
添加(“苹果”);
列表。添加(“橙色”);
我希望我的html是:

<select>
  <option value="apple">apple</option>
  <option value="orange">orange</option>
</select>

苹果
橙色

您不能使用
数据值字段执行此操作。您可以创建自己的类,该类将您的列表包装为下拉列表:

public class ListWrapper
{
    private List<string> _list;

    public ListWrapper(List<string> list)
    {
        this._list = list;
    }

    public override string ToString()
    {
        return String.Join(" ", _list.ToArray());
    }
}
公共类ListWrapper
{
私人名单(private List);;
公共ListWrapper(列表)
{
这个._list=list;
}
公共重写字符串ToString()
{
返回字符串.Join(“,_list.ToArray());
}
}

如果我理解正确,每个项目都是一个列表?Html.DropDownList语法会是什么样子?使用字典和键、值来设置属性似乎更容易。我想我误解了这个问题,你能把项目放在下拉列表中,然后列表就会出现吗?