1

MVC でリストに項目を追加する正しい方法について、次の質問があります。

次のモデルを取得したとしましょう。

public class Student
{
    public String Name { get; set; }
    public List<Lesson> Lessons { get; set; }
}

現在、ユーザーが複数のレッスンを追加できる Student Create ビューにいます。ビューの外観は、レッスンを選択できるドロップダウンと、新しいドロップダウンを追加するボタンがあります。このようにして、人は複数のレッスンを Lessons 変数に追加できます。

今、私は多くの異なるアプローチを試しましたが、これをビューに表示するのが好きではないため、正しいアプローチを持っているようには見えませんでした:

 @Html.DropDownListFor(model => model.Lessons[0].Id, new SelectList(...), "Select lesson")

そして、jqueryなどで0を1..2などに変更します。

複数のアイテムを動的に追加するビューに対するアプローチは何ですか?

4

1 に答える 1

2

エディターテンプレートの定義を検討する必要があります。

テンプレートを正しく作成すると、asp.netは次のような名前のコントロールをレンダリングします。

Lesson[0]_Title

更新:方法は次のとおりです。

エディターテンプレートと呼ばれるviews\sharedにフォルダーを作成します。次に、ここにレッスンタイプのモデルを含む部分ビューを作成します。この部分ビューを「Lesson.cshtml」(または、かみそりを使用していない場合はascx)と呼んでください。

その後、あなたはすることができます...

@Html.EditorFor(model => model.Lessons) 

...そしてasp.netは、LessonsがレッスンのIEnumerableであるため、ループしてそれぞれのエディターをレンダリングする必要があることを魔法のように理解します。かなりきちんと!

いくつかのリンク:

http://forums.asp.net/t/1846290.aspx/1?Editor+template+of+type+IEnumerable+SelectListItem+with+MVC+area

于 2012-12-07T09:08:10.493 に答える