2011-10-17 15 views
1

ASP .NET MVCにMVVM pattermを使用する方法については、多くの記事があります。たとえば、http://blogs.microsoft.co.il/blogs/helpercoil/archive/2010/08/28/asp-net-mvc-and-the-mvvm-pattern.aspxです。MVVMにMVVMを適用する。どのようにプロパティのマッピングを行うには?

私には1つの質問しかありません。 1つのモデルには多くのViewModelがあります。 viewModelオブジェクトを使用してModelプロパティを自動的に塗りつぶすにはどうすればよいですか?自動プロパティマッピングの作成方法

私はEntity Frameworkを使用します。例えば、私は次のプロパティを持つモデルのテストを持って

  • ID
  • タイトル
  • idUser
  • idCompany

私は自分のためのViewModelを作りました仕事。このViewModelに(TestUserViewModel)は、以下のproperiesとの簡単なユーザのために使用しています: - ID - に名前を付ける - タイトル

たとえば、ユーザが編集既存のテスト。その結果、TestUserViewModel型のオブジェクトが作成されます。私はしたい:

  • モデルオブジェクトとViewModelを同期させる。
  • 現在のViewModelから除外されたプロパティのidCompany、idUserのデフォルト値を保存します。
  • いくつかの自動のものを使用します - これはApplyCurrentValuesのようなものです。私は本当に、次のコードの多くを書く必要はありません:

    modelObj.name=viewModelObj.name; 
    modelObj.title=viewModelObj.title; 
    

System.Reflexionを使用して、これが悪いように見えるために、あまりにも。

だから、どうすればいいですか?

+2

MVVMは、MVCがより良いパターンであるASP.NET MVCのための良いパターンではありません。 –

+2

あなたはそのブログ記事を読んだことがありますか?それは悲劇でした。 CSSのウェブページでは、コードサンプルの半分がライン番号で表示され、半分はそうではありませんでした...私は自分の仕事を5分間過ごすのに気を使うことができない人からアドバイスを受けません。 – Will

+0

はい、その投稿は読書に悪い –

答えて

2

あなたはあるオブジェクトから別のオブジェクトのマッピング多くのコードを書きたくない場合は、AutoMapper http://automapper.org/

のようなマッピングツールに見たいと思うかもしれませんが@Darinディミトロフが指摘したように、あなたがすべき、と述べましたあなたのアーキテクチャも見直してください。あなたがASP.NET MVCをやっているなら、あなたはMVVMではなくMVCに精通しているはずです。 MVCの使い方について詳しくは、「viewModels」の使用方法を見てください。 MVCのこれらの「viewModels」は、「MVVM」の「VM」とは関係がありません。

+0

はい、私が理解したように、それは唯一の用語の問題です。 MVVMの名前はhttp://blogs.microsoft.co.il/blogs/helpercoil/archive/2010/08/28/asp-net-mvc-and-the-mvvm-pattern.aspxです。多分、それは正しい名前ではないでしょう。 –

+0

実際、あなたが参照したブログ投稿はMVVMとViewModelsの概念が間違っていると思います。投稿のコメントの1つ(Charles Vallanceのコメント)の1つがこれを指摘しています。ブログ投稿の作者はこれをラウンドアバウトで認識しているようですが、元のブログ投稿を更新したことはありません。しかたがない... –

関連する問題