MVC for Relations中的FormViewModel

时间:2010-10-18 15:49:21

标签: asp.net-mvc linq

我对MVC和LINQ很新。并且有一些问题。

我有一个名为users的表,我为男性和女性存储“M”或“F”。还有另一个名为Genders的表,它链接到Users表。我在ASP.NET MVC应用程序中有用户模型。我的问题是当我显示数据时,我应该在哪里创建一个属性,将“M”转换为“男性”,将“F”转换为“女性”。我已经拥有UsersFormViewModel。我应该在那里添加它还是直接添加到UsersModel。

非常感谢

1 个答案:

答案 0 :(得分:1)

我对MVVM的规则(这听起来就像你有一个UsersFormViewModel类一样)是为了避免在模型中执行类似视图的活动。

模型可以直接从数据库复制数据(贫血模型),也可以是业务对象(域模型)。在任何一种情况下,模型都应该只包含必要且足以表示自身的数据。

ViewModel应包含View所需的所有内容,以使模型适应显示。一直到“SaveActionEnabled”等属性,以便UI行为由数据绑定控制。

在您的情况下,您存储“M”&数据库中的“F”因此模型适合确保仅使用这两个值,因此您可能需要考虑为此目的创建enum

public enum Gender
{
    Male,
    Female,
}

然后在您的模型中使用此属性:

public Gender Gender { get; set; }

然后,您的ViewModel应将枚举映射到字符串。使用ToString()很容易。

现在,您可以从数据库中获得两种性别状态的一致表示,并且可以向用户显示数据。

这对你有什么用?