1

助けが必要なこと

子エンティティ間で一意の HTML ID を保持しながら、個別の分離されたフォーム投稿でビュー上の子エンティティの編集を処理するためのベスト プラクティス アプローチを探しています。

たとえば、ビューの上部で、注文に関する低レベルの詳細 (つまり、合計、配送方法、住所など) を変更できるようにしたいと考えています。このセクションは、OrderViewModel.

次に、個別に編集できる出荷のリストを表示したいと思います。それぞれに、特定の ViewModel タイプのアクションにマップする独自のフォーム投稿があります...私の場合はShipmentViewModel.

、、などOrderViewModelを含む他のさまざまな子エンティティ プロパティについても同じことをしたいと思います。OrderItemsOrderPaymentsOrderCoupons

なんで?

これを行う目的は、注文に関する小さな詳細を変更するときに、すべてのフォーム投稿で完全な水和注文を渡す必要がないようにすることです。

私は何を試しましたか?

OrderEdit.cshtml私は現在、パーシャル_OrderDetailEdit.cshtmlを使用して注文の詳細のフォームを表示する1 つのメイン ビューを使用して、これを機能させています。次に、for ループを使用して Shipments を反復処理し、 を呼び出して、Html.EditorFor(m => m.Shipments[i])Shipments 用のカスタム エディター テンプレートを活用します。

問題

このアプローチの問題は、Shipments を編集するための私の Action メソッドが、OrderViewModelではなくを強制的に取得することShipmentModelです。常に 1 つだけの出荷で水和されるため、これは理想的ではありません。orderEditViewModel.Shipments[0]自分の行動で使うと臭い。

エディター テンプレートを使用する前は、Shipments を編集するためのパーシャルがあっただけで、理想的なメソッド シグネチャを使用してフォームをアクションに投稿できました。このアプローチの問題点は、各 Shipment の HTML ID が同一であり、使用している jQuery プラグインで UI の問題が発生することでした。

4

0 に答える 0