@ Html.DropDownList为加入的子实体生成的键/ id不正确

时间:2012-09-03 15:09:40

标签: asp.net-mvc-3 forms html-select

在HTML表单上,我有各种控件绑定到父实体,2个子实体(都是一对一)需要依赖。

当提交from [POST]时,对于绑定到Parent的所有控件,以及绑定到Child实体的所有“text”类型控件,值仍然存在,但绑定到下拉控件的子字段不会持久存在。 / p>

我查看了HTML源代码,发现name和id标签的构造方式不同,因此提交表单中的键对于绑定到下拉控件的所有字段都不正确。

以下是来自父表“交易对手”和儿童“CounterpartyFinancial”

的表单中的两个示例控件

Textarea控制:值更改仍然存在: <textarea id="CounterpartyFinancial_WebAddress" name="CounterpartyFinancial.WebAddress">

组合控制:值更改不会持续: <select id="FinancialsSourceId" name="FinancialsSourceId">

下拉列表是用

构建的

1)Controller中的SelectList:

ViewBag.FinancialsSourceId = new SelectList(db.FinancialsSources, "FinancialsSourceId", "Name", counterparty.CounterpartyFinancial.FinancialsSourceId);

2)视图中的DropDownList Helper

@Html.DropDownList("FinancialsSourceId", String.Empty)

控件确实反映了数据库中的正确值。

我是否应该在下拉助手中使用覆盖,或者更可能是错误的配置/定义备份线路?

由于

1 个答案:

答案 0 :(得分:0)

我使用@ Html.DropdownListFor帮助

解决了这个问题

@Html.DropDownListFor(x => x.SomePropertyOnModel, (IEnumerable<SelectListItem>)ViewBag.Clients);

suggested by DavidAndroidDev here