2

AJAX 呼び出しを多用する ASP.NET MVC アプリケーションがあります。

これらの AJAX 呼び出しは、コントローラー メソッドにデータを送信します。このコントローラー メソッドには、単純な POCO ViewModel クラスである引数が必要です。

JavaScript では、プロパティが ViewModel のプロパティにマップされる匿名オブジェクトを作成し、MVC フレームワークがすべてのルーティングを処理して、コントローラー メソッドですべてのプロパティを備えた ViewModel を取得します。

すべて順調です。

私たちがやりたいことは、JavaScript 匿名クラスと ViewModel クラスが確実に同期されるようにするための堅牢な方法を導入することです。つまり、開発者が一方を変更すると、もう一方も変更されます。もちろん、両方のファイルに「一方を変更し、もう一方を変更してください」というコメントを入れることはできますが、これらの同期を維持できなかった開発者は深刻な打撃を受ける恐れがありますが、コード レビューであっても、これは見逃してください。

これをチェックできる何らかの自動化された単体テストがあれば素晴らしいと思いますが、これを達成する方法がわかりません。

助言がありますか?

前もって感謝します

グリフ

4

1 に答える 1

0

ノックアウトjsと呼ばれるJavaScriptライブラリがあり、それはあなたが達成しようとしているものに正確に使用されています. ASP.NET MVC フレームワークで MVVM パターンを使用しようとしているようです。どの MVVM パターンでも、ビューモデルとビューの同期を維持することはよくある問題です。KnockoutJS を使用すると、ビューに直接バインドする JavaScript ビューモデルをクライアント側で作成できます。ビューが更新されるとビューモデルが更新され、ビューモデルが更新されるとビューが更新されます。KnockoutJS は、Observer パターンと呼ばれる一般的なパターンを使用してこれを実現します。KnockoutJS はマッピング プラグインも提供するため、ビューモデルはサーバー側のビューモデルを JSON 形式で受け取り、それ自体を更新して、ビューを更新できます。これはあなたが探している機能です。ライブラリとマッピング プラグインは、同社の Web サイト www. ノックアウトjs.com。参考までに...これは製品レベルのライブラリです。また、優れたドキュメントと例もあります。これが役立つことを願っています。車輪を再発明しないでください。

于 2013-11-06T20:50:39.510 に答える