我正在尝试在简单的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"})