Я застрял на том, что, как я думал, будет очень простой задачей в ASP.Net MVC2.
Мне нужно применить цвет фона к определенным элементам SELECT OPTION.Для создания выпадающих списков мы используем html-помощники Html.DropDownList и Html.ListBox, и в идеале я хотел бы продолжить их использование, поэтому мне не нужно повторно связывать выбранные элементы из коллекции форм, когдаФорма отправлена и отображается повторно.
По причинам, которые я не буду вдаваться в HTML, помощники вызываются из другого написанного нами помощника HTML, поэтому они не отображаются.Код выглядит следующим образом ...
var setOfOptions = question.AnswerList.Values.Select(x => new SelectListItem(){
Value = x.ID.ToString(),
Text = x.Caption + " - " + x.Style,
Selected = question.Answers.Contains((object)x.ID)
});
answerlistHtml = html.DropDownList(question.GetQualifiedId(), setOfOptions, "Please select...", new { @class = "superselect disabled" }).ToHtmlString();
Итак, здесь мы превращаем коллекцию наших объектов "AnswerListValue" в IEnumerable и генерируем из этого HTML-код SELECT.Однако это не дает мне способа получить x.Style в элемент SELECT OPTION - потому что в SelectListItem нет свойства HtmlAttributes.Вот как я хочу, чтобы SELECT выглядел как ...
<select id="whatever" name="whatever">
<option value="1" class="mystyle1">val1</option>
<option value="2" class="mystyle2">val2</option>
<option value="3" class="mystyle3">val3</option>
</select>
Очевидный ответ здесь заключается в создании моего собственного объекта SelectListItemWithAttributes - но я не могу понять, как создать объект DropDownListWithAttributes, даже после изученияисходный код MVC2.
Что бы вы сделали в этой ситуации?