我试图复制一个简单的东西,当它在直接的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>
我想使用DropDownListFor()在MVC4中执行此操作,但不知道如何在选项中插入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; }
}
我希望答案很简单,但它让我望而却步。我提前感谢你的帮助。
答案 0 :(得分:0)
构建下拉列表并将其分配给您的模型
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"})