2

部分ビューを使用したいシナリオがありますが、データをコントローラーに渡す際に問題が発生します。これが私がやろうとしていることの基本的な例です。

オブジェクト:

  • お客様
  • 注文

顧客がIList<Order>それを持っています。ユーザーが情報を編集できるように部分ビューが必要です。表示するデータを取得できますが、フォームが投稿すると、Customerオブジェクトの下のリストがnullになります。

また、部分的なビューで別のフォームを使用しようとしました。これを行うと、次のようにコントローラーでパラメーターを作成すると、データが取得されます。

public ActionResult UpdateOrders(IList<Guid> id, IList<int> quantity, IList<Guid> productId)

しかし、私がこれを行うとき

public ActionResult UpdateOrders(IList<Order> orders)

リストはnullです。

誰かがこれを達成する方法についてより良い提案を持っているなら、私に知らせてください。

4

1 に答える 1

2

ビュー内のフィールドをどのように参照していますか? 私はそれが次のようなものであるべきだと考えています:

<input type="hidden" name="orders.Index" value="0" />
<input type="hidden" name="oders[0].ID" value="1" />
<input type="hidden" name="orders[0].productId" value="4" />
<input type="text" name="orders[0].quantity" value="6" />

<input type="hidden" name="orders.Index" value="1" />
<input type="hidden" name="orders[1].ID" value="2" />
<input type="hidden" name="orders[1].productId" value="2" />
<input type="text" name="orders[1].quantity" value="15" />

詳細については、リストへのバインドに関する Phil Haack のブログ エントリを参照してください。

于 2009-06-23T16:51:09.033 に答える