如何选择具有ID的DropDownListFor?

时间:2014-04-10 19:37:44

标签: css asp.net-mvc-4

我试图复制一个简单的东西,当它在直接的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; }
}

我希望答案很简单,但它让我望而却步。我提前感谢你的帮助。

1 个答案:

答案 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"})