gpt4 book ai didi

jquery - MVC 默认模型绑定(bind)器 - 将多选下拉列表绑定(bind)到 IList

转载 作者:行者123 更新时间:2023-12-01 05:08:27 25 4
gpt4 key购买 nike

我在使用 NHibernate 的 ASP.NET 应用程序中使用 MVC 2.0。

我有一个使用 NHibernate 的工作 View 、 Controller 和数据访问层,它能够显示和保存与另一个映射实体有关系的实体:

人物 --> 位置

它使用 HTML 帮助程序 HTML.DropDownListFor() 来显示所有位置的列表。用户可以从列表中选择位置之一,然后按“保存”。

默认模型绑定(bind)器正确设置要保存的 Person 实体上的 Location 值。该位置是一个 nhibernate 映射实体,已实例化并具有在下拉列表中选择的 id 值。显然,由于保存位置的下拉列表只有位置的 id,因此该位置的其余值均为空。还行吧。我只是想通过引用现有位置来保存此人。

所以,问题就来了。我们需要改变两个实体之间的关系。现在,Person 可以引用许多位置。

Person.Locations 将是一个 IList

我的问题是,如何让默认模型绑定(bind)器从多选下拉列表中进行选择并填充IList。

我过去曾设法使用语法 [index].PropertyName 保存实体集合,如 Phil Haacked .... http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx 所解释的那样。 。

这里的问题是我只有一个下拉列表,它会将具有不同值的重复键发回模型绑定(bind)器:

人员.位置.Id:2
人员.位置.Id:4
人员.位置.Id:5

不幸的是,这不起作用。位置列表不断返回 Null。

我们的 UI 人员正在使用一个灵活的 JQuery 插件来显示选择列表中的项目,因此我不想使用不同的 UI。

有什么想法吗?

最佳答案

一个建议:

将列表项的名称更改为“位置”,然后在操作方法中包含参数string[]locations

如果 MVC 可以正确匹配名称,您应该会收到一组选定的项目。然后,您可以通过适当的插入和删除手动更新数据库。

关于jquery - MVC 默认模型绑定(bind)器 - 将多选下拉列表绑定(bind)到 IList<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com