EditorFor我模型中的项目集合

时间:2011-04-22 15:22:23

标签: asp.net-mvc-3 viewmodel editorfor

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

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

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

谢谢!

1 个答案:

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