2015-11-16 2 views
0

Как я могу установить SelectedValue свойство SelectListSelectList выбраны значения не назначая из массива целых чисел

var attributeSet = attribute.AttributeSetAttributes.Where(c => c.AttributeSetID == id).Select(c => c.AttributeID).ToArray(); 

    var attributeList = new SelectList(db.CatAttributes.Where(c => c.IsActive), "ID", "FullName", attributeSet); 
    ViewBag.AttributesList = attributeList; 

и Фототуров я использовал его как то

@Html.ListBoxFor(model => model.Attributes, (SelectList)ViewBag.AttributesList, new { @class = "form-control" }) 

В выше attributeSet получить integer значения, выбранное свойство которых должно быть истинным в SelectList => attributeList. Если я даю только одно значение, оно отображает выбранное свойство = true, но когда я передаю массив или список, он не будет устанавливать выбранное свойство = true.

+3

Используйте 'MultiSelectList', но не обязательно добавлять последний параметр, если ваша привязка к свойству -' @ Html.ListBoxFor (m => m.attributeSet. Model.attributeList) ', потому что его значение свойство, которое определяет, что выбрано (последний параметр просто игнорируется) –

+0

Показать вашу модель и вид –

+0

@StephenMuecke см. мое редактирование –

ответ

0

Так я установил его, я использовал MultiSelectList вместо SelectList и передается третий параметр как массив

var attributeSet = attribute.AttributeSetAttributes.Where(c => c.AttributeSetID == id).Select(c => c.AttributeID).ToArray(); 

var attributeList = new MultiSelectList(db.CatAttributes.Where(c => c.IsActive), "ID", "FullName"); 
ViewBag.AttributesList = attributeList; 

var model = new AttributeSetViewModel() 
     { 
      AttributeSet = attribute, Attributes = attributeSet 
     }; 

и в соображениях

@Html.ListBoxFor(model => model.Attributes, (MultiSelectList)ViewBag.AttributesList, new { @class = "form-control" }) 

Это устанавливает мое выбранное свойство = верно.

Спасибо @ Stephen Muecke за идею !!

+1

Как я уже отмечал, это бессмысленно. Просто используйте 'myModel.Attributes = attributeSet; return View (myModel); 'и удалить последний параметр конструктора' SelectList' (вот как работает привязка модели!) –

+0

да, это тоже работает! –

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

  • Нет связанных вопросов^_^