什么是自定义ViewModel中的属性声明的最佳实践

时间:2010-07-12 03:30:20

标签: asp.net-mvc-2 viewmodel

在我为我的应用程序构建的新UserViewModel中,我有两个存储属性的选项。

第一个选择是

Public Property user As User              ''# Including the entire User object
Public Property custString as String      ''# Custom String for View

第二个选项是实际写出所有用户属性

Public Property ID As Integer             ''# Declaring each object individually
Public Property UserName As String        ''# Here is another object found in User
Public Property RegistrationDate As Date  ''# Here is another object found in User
Public Property custStrin As String       ''# Custom String for View

有谁能告诉我,更好的方法是什么?为什么?

我目前有第一个选项,但是,与第二个选项相比,我不喜欢它在View中的样子

这看起来不错(IMO)

<%: Model.UserName %> 

这看起来不太好(IMO)

<%: Model.User.UserName %>

1 个答案:

答案 0 :(得分:1)

我认为无论哪种方式都“更好”,它实际上取决于对象本身。

如果User对象具有只有get属性,没有公共默认构造函数或复杂状态逻辑,则它可能不是由默认模型绑定直接设置的好选择。通常在这种情况下,您可以“写出”User属性的某个子集作为ViewModel的相应属性,然后可以处理底层User对象的设置。这种情况并不少见。

但是如果你的User对象很简单并且可以直接绑定到它,那么将它直接用作模型的一部分肯定会更方便。