21

我的 ViewModel 有一个属性,它是我的另一个模型实体的集合,在本例中是 CategoryTags(每个标签都有一个标签和一个 ID)。

1) 我是否正确理解 Html.EditorFor() 没有可以为 ICollection 创建的 UI?

2)假设#1,我决定制作一个EditorTemplate,它是一个文本框,我的用户可以在其中键入以逗号分隔的标签名称,并且jquery将自动完成。我是否必须传回标签名称列表(或它们各自的 ID),然后将它们解析回 POST 上的 CategoryTags 属性?

谢谢!

4

1 回答 1

19
  1. 正确 - 您需要自己的模板(请参阅http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3
  2. 是的,这可以工作 - 如果模型绑定器被命名为正确的事物 id[0] 等,它们将正确填充。请参阅 Phil Haack 的文章: http ://haacked.com/archive/2008/10/23/model-绑定到列表.aspx

编辑#2 - 我读错了你原来的帖子。如果将它们全部放入一个文本框中,则需要解析它们(或创建自己的模型绑定器)。您可以有一个编辑器,为每个项目添加新的文本框到 DOM,然后模型绑定器将正确地重新填充列表。但是,在您提到的情况下,您的选择是在服务器上手动执行此操作,或者使用您自己的模型绑定器(这在此处相当容易)将它们分解为模型。两者任一 : )

于 2011-04-22T16:34:11.647 回答