При отправке формы раскрывающийся список отправляет только выбранное значение в контроллер.Таким образом, вы не можете ожидать, что он заполнит весь сложный объект, такой как BELocale
, используя выпадающий список.Лучше всего заполнить его свойство ID и извлечь оставшийся объект из вашего хранилища данных с помощью этого идентификатора.
Так что вам придется изменить свой помощник dropdownlist так, чтобы он был связан со свойством idлокаль в качестве первого аргумента:
@Html.DropDownListFor(
m => m.Locale.ID,
new SelectList(ViewBag.AvalaibleLocales, "ID", "OriginalName"),
"Select a language"
)
Теперь внутри соответствующего действия контроллера вы получите идентификатор:
public ActionResult VefifyAddingLocaleForPhoto(ArticleViewModel article)
{
// article.Locale.ID will contain the selected locale id
// so you can use this information to fetch the corresponding BELocale object
...
}