Asp.net mvc 如何在selectListItem上添加背景色

Asp.net mvc 如何在selectListItem上添加背景色,asp.net-mvc,selectlistitem,Asp.net Mvc,Selectlistitem,我有一个asp.net mvc页面,我想有一个不同背景颜色的下拉列表 我有以下代码来显示下拉列表 <label>Data Source: </label><% = Html.DropDownList("DataSource", Model.CalendarDataSources, new { @id = "calendarDSDropdown", @class = "calendarDSDropdown" })%> 数据源: 在我的viewmodel中,我

我有一个asp.net mvc页面,我想有一个不同背景颜色的下拉列表

我有以下代码来显示下拉列表

<label>Data Source: </label><% = Html.DropDownList("DataSource", Model.CalendarDataSources, new { @id = "calendarDSDropdown", @class = "calendarDSDropdown" })%>
数据源:
在我的viewmodel中,我有:

    public IEnumerable<SelectListItem> CalendarDataSources;
公共IEnumerable日历数据源;
我正在服务器上填充它。我想为每个SelectListItem添加不同的积压工作,但我看不到如何做,因为SelectListItem只有名称、Id、Selected属性


这是否可能

不幸的是,内置的
下拉列表
帮助程序不允许您在生成的
选项
标记上设置
样式
属性。您必须滚动您自己的助手才能实现此目的

您也可以使用jQuery设置颜色:

$(function() {
    $('select#DataSource option').each(function() {
        var option = $(this);
        option.css(
            'background-color', 
            someFunctionThatMapsTheOptionValueToAColor(option.val())
        );
    });
});

问题是,我希望每个项目都有不同的颜色(我在服务器上知道),是的,但您在服务器上也知道每个项目的值。因此,可以在值和颜色之间动态生成一个映射函数,可以在我的jQuery示例中使用。如果不是的话,你将不得不实现你自己的html助手。是的,我认为自定义助手看起来更直截了当一些,但是感谢这两个建议