0

eコマース注文の詳細を編集するためのUI画面を構築しています。ビューのモデル (OrderModel) には必要なものがすべて含まれていますが (プロパティは ViewModel でもあります)、UI はそのすべてを一度に編集できるように設計されていません。

たとえば、UI の一部は顧客データ用で、別の部分は注文の詳細用、別の部分は追跡情報用で、それぞれに独自の [保存] ボタンがあります。

1 つの巨大なフォームを使用し、非表示のフォーム フィールドを使用して編集不可のフィールドに入力し、各 [保存] ボタンにすべてのデータを投稿させることができることに気付きましたが、それは悪臭を放ちます。

編集可能なチャンクを、強い型付けを維持しながら個別に投稿および検証される小さな ViewModel に分割したいのですが、MVC3 でこれを実現する方法がわかりません。プライマリ ビューから呼び出される部分ビューが必要ですか?

参考までに、Razor 構文とクライアント側 FluentValidation で ASP.NET MVC 3 を使用しています。

4

1 に答える 1

1

部分ビューは良い解決策です。各部分ビューに異なる ViewModel を渡すことができます。しかし、ビュー全体のセクションのみが一度に更新される場合、ページ全体にポスト バックすることはありません。代わりに、JQuery/Javascript を使用した Ajax 呼び出しを使用して、個々の情報を更新してコントローラーに戻します。また、Knockout.js などを調べて、ページのデータ バインディングを処理します。

于 2012-02-08T20:22:32.357 に答える