2015-02-01 4 views
0

Так что у меня это на мой взгляд (я разбил его на foreach, чтобы я мог отлаживать его правильно). И согласно созданным объектам он выглядит хорошо. Я получаю 1 элемент, который имеет выбранное значение true.DropDownListДля выбранного значения не работает

@{ 
    var useritems = new List<SelectListItem>(); 
    foreach (var si in Model.UserList) 
    { 
     if (Model.CurrentUser.Id.Equals(si.Id)) 
     { 
      useritems.Add(new SelectListItem { Selected = true, Text = si.Username, Value = si.Id.ToString(CultureInfo.InvariantCulture) }); 
     } 
     else 
     { 
      useritems.Add(new SelectListItem { Text = si.Username, Value = si.Id.ToString(CultureInfo.InvariantCulture) }); 
     } 
    } 
} 

То, что я хочу сделать здесь проверить текущий (вход в систему) пользователя и установить по умолчанию выберите его/ее.

@Html.DropDownListFor(model => model.Creator, useritems, new { id = "CreatorDDL", }) 

Это, однако, не устанавливает ни один из объектов в выбранных пользователем элементах. Даже в отладчике это показывает, что выбрано 1 элемент: true

Как-то он просто показывает первый элемент в списке. Любые идеи? или я просто устал и пропустил что-то очень простое?

+0

что находится в 'model.Creator'? Маби, ты просто установил для него «ИД»? –

+0

Model.Creator - это просто свойство int в моей модели для этого вида – Riekard

+0

Вы пытаетесь его установить? я имею в виду 'model.Creator = Model.CurrentUser.Id' –

ответ

1

Значение model.Creator в дополнение к Selected в SelectList.

model.Creator = Model.CurrentUser.Id; 

Это лучше делать такие вещи в вашем Controller, а не в View.

+0

Да, я переместил всю логику/код в репозиторий controlle->. еще раз спасибо – Riekard

Смежные вопросы