Раскрывающийся список ASP.NET MVC не выбирает значение при рендеринге

У меня есть эта раздражающая проблема, когда мой DropDownlist не выбирает текущее значение по умолчанию.

контроллер:

var YearsCycling = new SelectList(new List<SelectListItem>() 
{ 
    new SelectListItem(){ Value="1yr", Text="1yr"},
    new SelectListItem(){ Value="1-3yrs", Text="1-3yrs"}, 
    new SelectListItem(){ Value="3-5yrs", Text="3-5yrs"}, 
    new SelectListItem(){ Value="5-10yrs", Text="5-10yrs"}, 
    new SelectListItem(){ Value="10+yrs", Text="10+yrs"} 
},
"Value",
"Text",
new SelectListItem() { Value = "5-10yrs", Text = "5-10yrs", 
Selected = true });
ViewBag.YearsCycling = YearsCycling;

Посмотреть:

<%:Html.DropDownListFor(model=>model.YearsCycling,(SelectList)ViewBag.YearsCycling,"-select-") %>

но вместо выбора «5-10 лет», он просто показывает опцию «-select-», и если я проверяю источник DOM, ни один из элементов не выбирается.

ОБНОВЛЕНИЕ: я все еще не знаю, в чем проблема, но я получил это пока, делая что-то уродливое:

<%
    var sl = (SelectList)ViewBag.YearsCycling;
%>
<select name="YearsCycling" id="YearsCycling">
<%foreach(var li in sl){  %>
    <option value="<%:li.Value %>" <%if(li.Selected){%>selected="true"<%}%>><%:li.Text %></option>
<%} %>
</select>

Это не лучшее решение, но если вы пришли к этому вопросу, потому что выдернули волосы, это должно помочь.

Ответы на вопрос(8)

Ваш ответ на вопрос