2012-04-02 22 views
2

プレゼンテーションレイヤーにMVCを使用し、WCFサービスと会話するサイトで作業するように割り当てられました。 2人は、前後に情報を渡すためにDTOを使用します。Asp.net MVCのデータ転送オブジェクト

現在、DTOはMVC部分(ユーザー、アドレス、アカウント情報)全体で使用されています。たとえば、MVCでのUserクラスは、すべてのユーザーについての情報だけでなく、ウェブ(ログイン)に固有のメソッドが含まれていることPersonDTOがあります

public class User 
{ 
    public PersonDTO Person { get; set; } 
    public void Login { /* Login */ } 
} 

だから、ユーザーが最初の名前を取得するには、あなたがするだろう。

var CurrentUser = new User(); 
var firstName = CurrentUser.Person.First; 

これを行う良い方法はありますか? (これはCurrentUser.Firstである必要があるようです)

これを行うには落とし穴がありますか?

MVCのコントローラアクションにDTOが流出することはありますか?

答えて

2

値が追加されている場合にのみ、追加の "ViewModel"クラスに自分のDTOをラップします。ビューに動力を与えるために必要なすべてのデータが含まれていると、ビューがDTOに直接バインドされるという問題はありません。あなたは、私は通常のDTOは十分なデータを私は必要以上のデータが含まれているか、いないことを見つけるなど1

1

に複数のフィールドを組み合わせたような追加のUIの懸念を持っているとき 「ViewModelには」理にかなっている場合の例です。このため、DTOをサービスから取得し、Automapperを介してビューモデルにマップします。

関連する問題