私はUserモデルを持っています。これには、Devicesのコレクションが含まれています。ユーザーは任意の数のデバイスを持つことができますが、各デバイスは1つのユーザーしか持てません。ASP.NET MVC3: "Edit"ビューからモデルのコレクションにリストの要素を追加します。
ユーザーを編集するためのページを作成しています。ユーザーのデバイスコレクションを編集する必要がある場合、ビューには、ユーザーに関連付けられたデバイスの表、それぞれの横にリンクを削除するリンク、および現在ユーザーに関連付けられていないデバイスの表、Addリンクが表示されます。ビューは両方のリストを含むビューモデルに型付けされます。
これはすべて部分的な視野の中にあるので、理想的にはAjaxで動的に更新できます。
残念ながら、私はASP.NETとMVC3、そして一般的なWeb開発についてはかなり新しくなっています。これを実装するためのビューを書くにはどうすればいいですか?
これを実装する方法に関する私の前提のほとんどは、thisチュートリアルに基づいています。彼は似たようなことをしていますが、@ Html.EditorForを使用していて、テキストフィールドのユーザタイプを何でも追加して、既存のオブジェクトを選択しません。おそらく、選択されたデバイスのIDをコントローラに送り返す必要があるので、リスト間でデバイスを移動して、更新された部分ビューを返すことができます。しかし、ビューはビューモデルに型付けされています。(私が間違っていない限り)ポスト内のコントローラに任意のデータを返すことはできません。私はビューモデルを送ることしかできません。だから私はそれを返す前に、私は選択したデバイスのIDをビューモデルに配置する必要があるようだが、私はそれを行う場合、私はビュー内のデータを操作することによって全体のMVCパターンに違反している。
これは非常に基本的な問題ですので、解決策はたくさんありますが、残念ながら私は1つを探す方法を知るには十分なドメイン知識がありません。