21

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

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

2) #1 を想定して、ユーザーがコンマ区切りのタグ名を入力でき、jquery がオートコンプリートするテキスト ボックスである EditorTemplate を作成することにしました。タグ名 (またはそれぞれの 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の編集-元の投稿を少し間違って読みました。それらをすべて 1 つのテキスト ボックスに入れる場合は、それらを解析する (または独自のモデル バインダーを作成する) 必要があります。各アイテムの DOM に新しいテキスト ボックスを追加するエディターを使用すると、モデル バインダーがリストを正しく再作成します。ただし、あなたが言及した場合、オプションはサーバーで手動でこれを行うか、独自のモデル バインダー (ここではかなり簡単です) を使用してそれらをモデルに分割します。または:)

于 2011-04-22T16:34:11.647 に答える