ユーザーが入力する同じアイテムの数をユーザーが指示できるいくつかの要素を含む、ユーザーが入力するデータ入力フィールドのヒープ全体を含むフォームがあります。これは、Phil Haack のブログ エントリModel Binding To A Listで使用されているものです。
JQuery を使用して追加のフォーム要素を作成したり、正しくインデックスを作成したりしています。私の問題は、コントローラー内でこれらを実際に読み取るための最良の方法です。この記事の Controller は 1 つのオブジェクトのみを想定していますがIList<Product>
、私の Controller は既に を想定してFormCollection form
おり、現在はそれを も送信しようとしてIList<Itmes>
います。
これをコントローラーが期待するパラメーターに追加するか、フォーム ["items"] などを介してアクセスする必要がありますか?
意見
<form action="/MyItems/Add" method="post">
<input type="text" name="Title" value="" />
<input type="hidden" name="myItem.Index" value="0" />
<input id="item[0].Amount" name="item[0].Amount" type="text" value="" />
<input id="item[0].Name" name="item[0].Name" type="text" value="" />
<input type="hidden" name="myItem.Index" value="1" />
<input id="item[1].Amount" name="item[1].Amount" type="text" value="" />
<input id="item[1].Name" name="item[1].Name" type="text" value="" />
</form>
コントローラ
public ActionResult Add(FormCollection form)
{
string Title = form["Title"];
List<Item> Items = form["items"].ToList();
}
DTO
public class Item()
{
int Amount {get; set; };
string Name {get; set; };
}