1

我对带有继承的 ViewModel 设计有点困惑。

场景:

我有一个用户实体的数据模型和多个视图模型。我正在使用 ADO.Net 从数据库绑定中获取数据模型。并且数据模型可以传递给不同的 ViewModel。一两个视图看起来还可以。但是当我的视图数量增加时,我需要不同的视图模型。我还想避免 ViewModel 中的冗余字段。我创建了一个 UserBaseModel。所以所有的 ViewModel 都继承自它

问题:

我有 UserSetting 视图和 UserRegistration 视图的密码和确认密码字段,并且我创建了 UserSettingViewModel 和 UserRegistrationViewModel。而且我认为其他视图模型不需要这些字段。我不想在 UserBaseModel 中定义字段,也不想为两个 ViewModel 中的相同字段定义多次。

有没有其他选择?欢迎提出建议和意见

4

2 回答 2

1

由于 C# 不支持多重继承,因此您无法从第二个基本模型派生模型。您基本上最终会创建另一个派生自UserBaseModel并包含密码属性的基本视图模型:

public UserBaseModelWithPassword : UserBaseModel
{
    public string Password { get; set; }

    public string PasswordConfirm { get; set; }
}

然后你就可以从中派生UserSettingViewModelUserRegistrationViewModel

于 2013-10-19T18:06:32.067 回答
0

更多的想法给了我另一个解决方案。

  public PasswordModel
{
    public string Password { get; set; }

    public string PasswordConfirm { get; set; }
}

public UserSettingViewModel
{
    public PasswordModel Password { get; set; }

}
于 2013-10-19T19:02:59.037 回答