我有一个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查找实际的对象引用并将其关联。但是现在我甚至没有得到半满的物体......
答案 0 :(得分:1)
我假设您将复杂类型模型传递给您的视图。要从DropdownList
获取所选值,您需要明确告诉模型绑定器要将数据绑定到哪个模型。见下面的例子:
@Html.DropDownList("CurrencyCode.CurrencyCode", new SelectList(ViewBag.Currencies, "CurrencyCode", "CurrencyCode"), Model.LocalCurrencyCode.CurrencyCode)