[英]How to represent many-to-many selection in MVC3 View?
在我的模型中,我有一个Product对象,我有一个Author对象,并且它们具有多对多关系,因此我也有一个ProductAuthor对象。
从功能上讲,我希望在视图中有一个文本框,用户可以在其中输入作者的姓名,然后使用Ajax搜索该姓名,并在下方显示一些结果,然后用户可以单击添加一个(或多个),并且所选内容将显示在此搜索框旁边。 然后,当我在表单上按Save时,所有内容都保存在控制器中,而不是之前保存(因此没有异步AddAuthor方法)。
另外,如果我加载要编辑的产品,并且已经附加了作者,则希望它们显示出来,并且用户必须能够取消选择它们(因此,当他按保存时,它们将不再处于连接状态。)
如何在视图中表示它? 如果必须在显示中编写一个foreach循环是可以的,但是在提交时如何发送它们? 是否为每个选定的作者生成隐藏字段? 如果是这样,如何命名它们,以便可以在控制器中访问它们? 可以将它们以某种方式序列化为类型化的实体,还是必须在FormCollection中查找它们?
如果我可以对一对多关系使用几乎没有变化的相同内容(当一篇文章只能有一个作者,但我不想为此使用dropdownlist时,因为可以有很多作者,那么这是加分点)并且它是不可搜索的,如果我为多对多场景编写了一个异步FindAuthor,我也想在一对多中使用它)。
在产品编辑的情况下,将有多个作者要选择,因此您可以将其存储在隐藏字段中。 多个隐藏字段不是必需的。 只需附加作者ID
<input id="authorIDs" type="hidden" value="56,64,33" />
您可以使用FormCollection或Typed Entity来获取此数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.