2015-02-10 2 views
2

Я работаю над этим в течение 2 дней, и я не могу заставить его работать. Я пытаюсь сделать DropDownListFor со значением по умолчанию (как на странице редактирования). Я сделал работу без модели, но когда есть модель, она показывает первый элемент по умолчанию, а не тот, который я хотел. Я попробовал, добавив выбранный = истина в SelectListItem, находясь в цикле Еогеасп, как это, по-прежнему не работает:Как установить значение по умолчанию в DropDownListFor

List<SelectListItem> selectListCategories = new List<SelectListItem>(); 
foreach(var item in listCategories) 
{ 
    if(item.Id == Model.Category.Id) 
    { 
     selectListCategories.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Name, Selected=true }); 
    } 
    else 
    { 
     selectListCategories.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Name }); 
    } 
} 

Это один работал, но без модели.

Я также попытался добавить значение по умолчанию в объекте SelectList подобное:

@Html.DropDownListFor(model => model.Category, new SelectList(ViewBag.ListingCategories, "Id", "Name", Model.Category.Id)) 

Это либо не работает, или есть что-то я не правильно понял, потому что я пытался адаптировать некоторые пример, который я видел здесь и на сообщения msdn без каких-либо успехов.

ViewBag.ListingCategories содержит IEnumerable список моих категорий, взятых из моей базы данных.

Конечно, Model.Category содержит объект категории с идентификатором (это внешний ключ к другой таблице) и имя.

Теперь я не в порядке, поэтому, надеюсь, я могу найти помощь здесь.

Спасибо.

+0

Вы уверены, что 'Model.Category.Id' имеет значение? и если да, то он содержит значение, которое находится внутри 'ViewBag.ListingCategories'? Я предлагаю вам разместить здесь больше своего кода просмотра. – ilans

ответ

0

Смотреть это answer (по @Elad Lachmi):

SelectListItem имеет Selected свойство. Если вы создаете динамический выбор SelectListItems, вы можете просто установить тот, который вы хотите, как Selected = true, и он будет по умолчанию.

SelectListItem defaultItem = new SelectListItem() 
{ 
    Value = 1, 
    Text = "Deafult Item", 
    Selected = true 
}; 
Смежные вопросы