【问题标题】:Data Transfer Objects in Asp.net MVCAsp.net MVC 中的数据传输对象
【发布时间】:2012-04-02 04:37:04
【问题描述】:

我被分配在一个使用 MVC 作为表示层并与 WCF 服务对话的站点上工作。两者使用 DTO 来回传递信息。

目前,DTO 用于整个 MVC 部分(用户、地址、帐户信息)。例如,MVC 中的 User 类有一个 PersonDTO,其中包含有关用户的所有信息以及特定于 Web 的方法(登录):

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 中的控制器操作?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-3 dto


    【解决方案1】:

    只有在有附加价值的情况下,我才会将我的 DTO 包装在一个额外的“ViewModel”类中。如果视图包含驱动视图所需的所有数据,我认为将视图直接绑定到 DTO 不会有问题。 “viewModel”有意义的一个例子是当你有额外的 UI 问题,比如将多个字段合并为一个等时。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多