0

我有多个相关的 ViewModel:

  • 更改密码视图模型
  • 重置密码视图模型
  • 注册视图模型

每个都包含密码属性的多个注释属性。

我希望能够只定义一次这些属性。

我尝试使用 MetadataType 属性将每个 ViewModel 与包含所有关联属性的类相关联,但由于这包括可能不在单个 View Model 中的属性,因此我收到一条错误消息。

4

1 回答 1

1

使用继承:

public class BasePasswordViewModel
{
     [Required]
     public string Password { get; set; }
     [Required]
     public string ConfirmPassword { get; set; }
}

public class ChangePasswordViewModel: BasePasswordViewModel { //... }

public class ResetPasswordViewModel : BasePasswordViewModel { //... }

public class RegisterViewModel: BasePasswordViewModel { //... }

您的所有“共享”属性都可以进入BasePasswordViewModel,任何特定于ChangePasswordViewModel, ResetPasswordViewModel, 的内容RegisterViewModel都可以进入。

于 2013-06-20T13:59:13.627 回答