我正在尝试在简单的html中复制一个简单的事情,其中​​为用户选择颜色而设计的下拉菜单具有带有彩色背景的选择选项。通过分配id类型的css,可以轻松地使它工作。

<style type="text/css">
  #red {background: #ff0000;}
  #orange {background: #ffaa00;}
  #yellow {background: #ffff00;}
  #green {background: #00ff50;}
  #purple {background: #9932CD;}
  #blue {background: #0000ff;}
  #brown {background: #8B4513;}
</style>

<body>
<div id=container>
    <select id='selected' onchange='changeColor(this.value);'>
        <option id='red' value='#ff0000'>Red</option>
        <option id='orange' value='#ffaa00'>Orange</option>
        <option id='yellow' value='#ffff00'>Yellow</option>
        <option id='green' value='#00ff50'>Green</option>
        <option id='purple' value='#9932CD'>Purple</option>
        <option id='blue' value='#0000ff'>Blue</option>
        <option id='brown' value='#8B4513'>Brown</option>
    </select>
</div>
</body>


我想在MVC4中使用DropDownListFor()做到这一点,但不知道如何在选项中插入id属性/值对。这是我当前的MVC代码:

@Html.DropDownListFor(
    m => Model.Item.Id,
    new SelectList(Model.Items, "Id", "Name", Model.Item.Id),
    new { @class = "selectStatus", onchange = "changeColor(this)" })


这里的模型是一个具有Id和Name属性的类。

public class Item
{
    public int Id { get; set; }

    public string Name { get; set; }
}


我希望答案很简单,但这使我难以理解。谢谢您的帮助。

最佳答案

在控制器上建立下拉列表并将其分配给模型

List<SelectListItem> ls = new List<SelectListItem>();
foreach(var temp in YourRecords){
    ls.Add(new SelectListItem() { Text = temp.Text, Value = temp.Value });
}

ViewModel.DropDownList = ls;

然后在你看来
@Html.DropDownListFor(x => x.Item.Id, Model.DropDownList, new { @class = "selectStatus"})

08-25 20:48
查看更多