0

SO に関する人々はよく次のように言いViewModel ます。

myViewModelが にシリアル化されたクライアントに WebApi 応答として送信される場合JSON、どのようViewModelにしてクライアントでメソッドを実行できますか?

これは私にはまったくわかりません。

4

2 に答える 2

0

少なくとも 2 つの方法でビューモデルを理解できます

  • ビジネス オブジェクトをビュー (MVC Razor ビューなど) に渡す代わりに、このビューに必要なプロパティのみを含む、必要最小限のオブジェクトを渡します。ビューの作成が簡単になり、ビュー デザイナーがデータベースから遅延ロードされるフィールドを使用する場合の問題を回避できます ( Select N+1 の問題などを回避します) 。

  • クライアント側で使用されるビューモデルを作成できます(Javascriptで)。オブジェクトとしてJavascriptで作成するため、ビューが呼び出すことができるメソッドを含めることができます。あなたが説明しているもの (WebAPI を使用して JSON オブジェクトを送信する) は、そのビューモデルにフィードする単なるデータです。この例については、メインページのこちらのknockoutjsを参照してください。チケット配列を含む TicketsViewModel を確認できます。この例では、viewmodel にハードコードされた 3 種類のチケットを見ることができます。ただし、説明したように、WebAPI から JSON として取得できます。それらをダウンロードしたら、それらをこの配列に入れます。

于 2013-02-26T19:49:13.753 に答える
-1

DTO (データ転送オブジェクト) には、消費可能な形式のデータが含まれています。ViewModel/ActionModel には、View が使用できるようにフォーマットされたデータが含まれています。

DTO は次のようになります。

public class OrderDTO
{
    public decimal Price { get; set; }
    public int Amount { get; set; }
}

ViewModel は次のようになります。

public class OrderViewModel
{
    public decimal Price { get; set; }
    public int Amount { get; set; }
    public string PriceBackgroundColor { get; set;}
    public Uri ImageUri { get; set; }
}
于 2013-02-26T19:50:15.637 に答える