У мене є зображення бритви, де я редагую a Document
об'єкт і я намагаюся змінити асоційований Currency
запис Доступно Currency
перераховані у випадаючому списку.
У мене є два класи в EF, показані нижче.
public class Document
{
public Currency CurrencyCode { get; set; }
}
public class Currency
{
[Key]
public string CurrencyCode { get; set; }
[Column(TypeName = "Money")]
public decimal ExchangeRate { get; set; }
}
Я створюю випадаючий список на зразок цього:
@Html.DropDownListFor(m => m.CurrencyCode.CurrencyCode, new SelectList(ViewBag.Currencies, "CurrencyCode", "CurrencyCode"), Model.LocalCurrencyCode.CurrencyCode)
Коли я публікую вигляд за допомогою кнопки відправки, я бачу, що значення опубліковано: CurrencyCode.CurrencyCode:USD
. Моделюючий зв'язок робить хорошу роботу, пов'язану всіма моїми простими полями даних (інші поля не показані). Але об'єкт Document.CurrencyCode залишається нульовим.
Мій план мав лише повернути CurrencyCodeЗначення, а потім шукати фактичну посилання на об'єкт за допомогою Entity Framework і пов'язати його. Але прямо зараз я навіть не отримую половину заповненого об'єкта назад ...
Відповіді:
1 для відповіді № 1Я вважаю, що ви передали складну модель типу на вашу думку. Щоб отримати вибране значення з DropdownList
, ви повинні чітко сказати модель зв'язувача, яку модель ви хочете прив'язати дані до. Див нижче приклад:
@Html.DropDownList("CurrencyCode.CurrencyCode", new SelectList(ViewBag.Currencies, "CurrencyCode", "CurrencyCode"), Model.LocalCurrencyCode.CurrencyCode)