2016-01-25 3 views
-1
MVC

У меня есть эта часть кода, который работает очень хорошо:значение по умолчанию для DropDownListFor хелперов 5

merge1.Statuses = db.JobStatus.Select(s => new SelectListItem 
     { 
      Value = s.JobStatusID.ToString(), 
      Text = s.JobStatusName 
     }).ToList(); 

Теперь я хочу добавить значение по умолчанию, которое динамическое значение, в зависимости от базы данных. Итак, я попробовал что-то вроде:

private SelectListItem statuses(string defaultStatus) 
    { 
     db.JobStatus.Select(s => new SelectListItem 
     { 
      Value = s.JobStatusID.ToString(), 
      Text = s.JobStatusName, 
      defaultStatus 

     }).ToList(); 
     return ??? 
    } 

Итак, я пометил red по умолчаниюStatus. Заранее спасибо

+0

Если ваша привязка к свойству, то это значение свойства, которое определяет выбранную опцию. Перед передачей его в представление установите для свойства значение по умолчанию. Обратите внимание, что установка свойства 'Selected'' SelectListItem' бессмысленно при использовании 'DropDownListFor()' - его игнорируется. –

ответ

3

Я бы сделать это так

private IEnumerable<SelectListItem> statuses(string defaultStatus) 
{ 
    return db.JobStatus.Select(s => new SelectListItem 
    { 
     Value = s.JobStatusID.ToString(), 
     Text = s.JobStatusName, 
     Selected = s.JobStatusName == defaultStatus 

    }).ToList(); 
} 

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

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