web-dev-qa-db-ja.com

Editor私のモデルのアイテムのコレクション用

私のViewModelには、別のモデルエンティティ(この場合はCategoryTags)のコレクションであるプロパティがあります(各タグにはタグとIDがあります)。

1)Html.EditorFor()にはICollection用に作成できるUIがないことを理解して正しいですか?

2)#1を想定して、ユーザーがコンマ区切りのタグ名を入力するとjqueryがオートコンプリートされるテキストボックスであるEditorTemplateを作成することにしました。タグ名(またはそれぞれのID)のリストを返し、POSTでCategoryTagsプロパティに解析して戻す必要がありますか?

ありがとう!

21
Ben Finkel
  1. 正解-独自のテンプレートが必要です( http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc- を参照)
  2. はい、これは機能します-モデルバインダーは、正しいものid [0]などの名前が付けられている場合、適切に入力されます。これに関するPhil Haackの記事を参照してください: http://haacked.com/archive/2008/10/ 23/model-binding-to-a-list.aspx

#2のために編集-私はあなたの元の投稿を少し間違って読みました。それらすべてを単一のテキストボックスに入れる場合は、それらを解析する(または独自のモデルバインダーを作成する)必要があります。各アイテムのDOMに新しいテキストボックスを追加するエディターを作成すると、モデルバインダーがリストを正しく再作成します。ただし、あなたが言及した場合、オプションはサーバー上で手動でこれを行うか、独自のモデルバインダー(ここではかなり簡単です)を使用してそれらをモデルに分解します。または:)

19