2014-01-15 6 views
0

У меня есть вид Razor, где я редактирую объект 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. Связующее устройство Model отлично подходит для привязки всех моих простых полей данных (другие поля не показаны). Но объект Document.CurrencyCode остается нулевым.

Мой план состоял в том, чтобы вернуть значение CurrencyCode, а затем посмотреть фактическую ссылку на объект с помощью Entity Framework и связать ее. Но прямо сейчас я даже не получу наполовину заполненный объект назад ...

+0

Только значения, которые находятся в вспомогательном (кроме дисплея), возвращаются обратно в контроллер. Если вы хотите, чтобы document.currencycode возвращался, вы должны быть скрытым или что-то вроде этого –

ответ

1

Я предполагаю, что вы прошли модель сложного типа на ваш взгляд. Чтобы получить выбранное значение от DropdownList, вам нужно явно указать привязке модели, к какой модели вы хотите привязать данные. См. Ниже пример:

@Html.DropDownList("CurrencyCode.CurrencyCode", new SelectList(ViewBag.Currencies, "CurrencyCode", "CurrencyCode"), Model.LocalCurrencyCode.CurrencyCode) 
+0

Perfect, моя проблема решена. Я думал, что мне придется обернуть его моделью взгляда, но это и сделало трюк. – Peter

Смежные вопросы