0

単純なモデルがあるとします:

public class studentNames
{
string name{get; set;}
}

ここで、作成モードでビューにスキャフォールディングすると、モデルは 1 つだけ作成されます。1 つのビューで複数のオブジェクトを作成したい。

何かのようなもの:

<form action="someAction">
Name of student1: <student1 name input box>
Name of student2: <student2 name input box>

<save button>

</form>

このボタンをクリックすると、リストがコントローラーに返され、データベースに保存できます。

どうすればこれを達成できますか?前もって感謝します。

4

1 に答える 1

0

モデル バインダーが期待する規則を読むことから始めることができbinding to listsます。次に、入力フィールドに適切な名前を付けます。

@using (Html.BeginForm("SomeAction", "SomeController"))
{
    @for (var i = 0; i < 5; i++)
    {
        <div>
            Name of student: @Html.TextBox("name[" + i + "]", null)
        </div>
    }
    <button type="submit">Save</button>
}

そして、あなたの POST コントローラ アクションは学生のコレクションを取ることができます:

[HttpPost]
public ActionResult SomeAction(IList<StudentNames> students)
{
    ...
}

ビュー内でこのコレクションのアイテムを動的に追加および削除できるようにしたい場合はEditing a variable length list、Steven Sanderson の記事を読むことをお勧めします。この記事では、そのようなインターフェイスを構築できる優れたテクニックを説明しています。

于 2013-02-03T16:24:02.180 に答える