我的viewmodel有一个属性,它是我的另一个模型实体的集合,在这种情况下是CategoryTags(每个标签都有一个Tag和一个ID)。
1)我正确理解Html.EditorFor()没有可以为ICollection创建的UI?
2)假设#1,我决定做一个EditorTemplate,它是一个文本框,我的用户可以键入逗号分隔的标签名称,并且jquery将自动完成。我必须传回标签名称列表(或其各自的ID),然后将其解析回POST中的CategoryTags安全性?
谢谢!
解决方法
>正确 – 你需要你自己的模板(见
http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3)
>是的,这可以工作 – 如果它们被命名为正确的东西id [0]等,模型binder将正确填充。请参阅Phil Haack的文章: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
>是的,这可以工作 – 如果它们被命名为正确的东西id [0]等,模型binder将正确填充。请参阅Phil Haack的文章: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
编辑#2 – 我读了你的原始帖子有点不正确。如果将它们全部放入单个文本框中,则需要解析它们(或创建自己的模型绑定器)。您可以有一个编辑器为每个项目向DOM添加新的文本框,然后模型binder将正确地重新填充列表。但是,在您提到的情况下,您的选项是手动在服务器上执行此操作,或使用您自己的模型绑定(这将是相当容易的)将它们分解成一个模型。两者任一 : )