Я работаю над этим в течение 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
содержит объект категории с идентификатором (это внешний ключ к другой таблице) и имя.
Теперь я не в порядке, поэтому, надеюсь, я могу найти помощь здесь.
Спасибо.
Вы уверены, что 'Model.Category.Id' имеет значение? и если да, то он содержит значение, которое находится внутри 'ViewBag.ListingCategories'? Я предлагаю вам разместить здесь больше своего кода просмотра. – ilans