2012-04-02 97 views
2

我已经被分配到使用MVC作为表示层并且与WCF服务对话的站点上工作。这两个人使用DTO来回传递信息。Asp.net MVC中的数据传输对象

目前,在整个MVC部分(用户,地址,帐户信息)中使用DTO。例如,在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)

除了罗嗦之外,是否有这样做的缺陷?

DTO是否意味着渗入MVC中的控制器操作?

回答

2

只有在增加了值的情况下,我才将我的DTO包装在附加的“ViewModel”类中。如果视图包含视图所需的所有数据,我认为您的视图没有直接绑定到DTO的问题。 “viewModel”何时有意义的一个示例是,当您有其他用户界面问题,如将多个字段组合成一个等等。

1

我通常发现DTO包含的数据比我需要的还要多,或者数据不够。因此,我从服务中获得我的DTO,然后通过Automapper将它们映射到视图模型。

相关问题