さまざまなプロパティを持つモデルがありますが、関心のあるものは別のタイプのモデルのリストです。
例えば:
public class User
{
public string Name { get; set; }
public string Description { get; set; }
public IEnumerable<UserInterest> Interests { get; set; }
}
次に、ビュー内でエディターテンプレートを使用して、モデルアイテムの各アイテムのビューをレンダリングします。
@Html.EditorFor(x => x.Interests)
EditorForテンプレートは次のようになります。
@model Interest
<div>
@Html.HiddenFor(x => x.Id)
@Html.TextBoxFor(x => x.InterestText)
@Html.CheckBoxFor(x => x.Delete)
....
</div>
ここで受け入れられた答えに非常に似たもの:モデルのリストを含むモデル(MVC-3、Razor)
私の質問は、クライアント側(jQuery)から、サーバーに戻らずにプロパティ内に新しいアイテムをどのように作成するかということです。私は現在、データをコントローラーにポストバックするという大まかな方法を持っています。コントローラーは、Interestsプロパティ内の新しい空白のアイテムでモデルを返します。
これは、HTTPリクエストを作成するのはやり過ぎであり、あまりエレガントではないようです。jQuery .Clone()を使用することを考えていましたが、要素に名前を付けたり、既存の値をクリアしたりするために何をする必要があるのか完全にはわかりませんでした。
だから、誰かが何か提案がありますか。より多くの意見やさまざまなアプローチを期待しています。