2014-01-15 50 views
0

我有一個剃刀視圖,我正在編輯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值,然後使用實體框架查找實際的對象引用並將其關聯。但現在,我甚至沒有收到一半填滿的物體......

+0

只有在助手(除顯示器外)中的值纔會返回給控制器。如果你想document.currencycode回來,你應該在一個隱藏的或類似 –

回答

1

我假設你將一個複雜類型的模型傳遞給了你的視圖。要從DropdownList獲取選定值,您需要明確告訴模型聯編程序要將數據綁定到的模型。請參閱下面的示例:

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

完美,我的問題已解決。我認爲我將不得不用視圖模型來包裝它,但是這個技巧。 – Peter