Я тяну свои волосы сюда.Я использую DropDownListFor
HTML помощник в MVC3 с перечислениями, например, так:
@Html.DropDownListFor(model => model.Title, Enum.GetValues(typeof(ICS_Signup_Form.Models.Titles)).Cast<ICS_Signup_Form.Models.Titles>().Select(x => new SelectListItem { Text = x.ToString().ToFriendlyString(), Value = x.ToString() }), new { @class = "styled" })
Мой enum выглядит так: public enum Titles { Mr, Dr, Miss, Mrs, Ms, Other };
Если Model.Title
равно «Другое», тогда выпадающий список не выбирает это значение, в HTML нет selected="selected"
.Я попытался добавить свойство Selected
к SelectListItem
: Selected = (x.ToString() == Model.Title)
, и выражение работает нормально, когда я выполняю свой код, как и ожидалось, но выбранное значение всегда равно "Mr" (первое в списке).
Что еще страннее, это прекрасно работает (как и остальные 7 выпадающих списков, которые есть в моем проекте):
@Html.DropDownListFor(model => model.BusinessStatus, Enum.GetValues(typeof(ICS_Signup_Form.Models.BusinessTypes)).Cast<ICS_Signup_Form.Models.BusinessTypes>().Select(x => new SelectListItem { Text = x.ToString().ToFriendlyString(), Value = x.ToString() }), new { @class = "styled" })
С перечислением: public enum BusinessTypes { Charity, Government, Limited, LLP, Partnership, PLC, SoleTrader };
Разница?Нет .. Есть идеи?