0

ビューコール「EditProfile」でバインドしているビューモデルがあります。ユーザーがメニュー バーから [EditProfile] リンクをクリックすると、get restful サービスを呼び出してすべてのプロファイル情報が読み込まれ、ユーザーは自分のプロファイルを表示できます。

ユーザーは任意のフィールドを変更できますが、ユーザーが変更したフィールドのみを投稿したいと考えています。

2 つのプロパティを比較する方法は知っていますが、ビューモデルから変更されたプロパティのみを取得する方法がわかりません。以前にこの状況に到達した人はいますか?

ビューモデルのプロパティは次のとおりです。

 public class UserViewModel
 {
  public string FirstName { get; set; } 
  public string LastName { get; set; }
  public string Email { get; set; }
  public string Profession { get; set; }
 }
4

2 に答える 2

1

過去にINotifyPropertyChanged、ViewModel 用に実装しました。そして、PropertyChanged イベントが発生した後にどのプロパティが変更されたかをログに記録しました。

于 2012-04-03T19:52:52.860 に答える
0

別のアプローチを採用しない理由 - すべてを投稿して (モデルが利用可能になるように)、オブジェクトに "IsDirty" プロパティを設定するだけで、データベースへの変更のみを送信するのに十分スマートです (エンティティ フレームワークがデフォルトで行うように)。

独自の jQuery .post() パラメータを簡単に作成できますが、大量のデータがない限り、なぜでしょうか? ビュー モデルが読みにくくなります (どのシナリオで何が投稿されているかを知る方法)。そのため、典型的なアプローチは、個別のビュー モデルを投稿するか、すべてを投稿することです。私の意見では、基本的なフォームの方が簡単です。

于 2012-04-03T20:20:34.187 に答える