从下拉列表中选择对象

时间:2014-01-15 19:49:21

标签: c# asp.net-mvc entity-framework asp.net-mvc-4 razor

我有一个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对象保留为null。

我的计划是仅返回CurrencyCode值,然后使用Entity Framework查找实际的对象引用并将其关联。但是现在我甚至没有得到半满的物体......

1 个答案:

答案 0 :(得分:1)

我假设您将复杂类型模型传递给您的视图。要从DropdownList获取所选值,您需要明确告诉模型绑定器要将数据绑定到哪个模型。见下面的例子:

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