Я знаю, что это старый пост, но я столкнулся с подобной проблемой в MVC5. Решение простое, но я некоторое время боролся с ним, поэтому подумал, что поделюсь.
VS автоматически создает DropDownLists с этим в представлении:
@Html.DropDownList("EpisodeTypeId", null, htmlAttributes: new { @class = "form-control" })
В контроллере VS автоматически генерирует код ViewBag по-разному для создания и редактирования.
Вот код из создания:
ViewBag.EpisodeTypeId = new SelectList(db.EpisodeTypes, "Id", "Name");
А из редактирования:
ViewBag.EpisodeTypeId = new SelectList(db.EpisodeTypes, "Id", "Name", episode.EpisodeTypeId);
Этот четвертый аргумент важен для правок, как и следовало ожидать. Если вы пропустите это, значение базы данных для этой записи не будет предварительно выбрано в DropDown.
Сгенерированный автоматически код VS будет правильным, но если вы добавите поля позже, это будет легко пропустить.