我有多个相关的 ViewModel:
- 更改密码视图模型
- 重置密码视图模型
- 注册视图模型
每个都包含密码属性的多个注释属性。
我希望能够只定义一次这些属性。
我尝试使用 MetadataType 属性将每个 ViewModel 与包含所有关联属性的类相关联,但由于这包括可能不在单个 View Model 中的属性,因此我收到一条错误消息。
我有多个相关的 ViewModel:
每个都包含密码属性的多个注释属性。
我希望能够只定义一次这些属性。
我尝试使用 MetadataType 属性将每个 ViewModel 与包含所有关联属性的类相关联,但由于这包括可能不在单个 View Model 中的属性,因此我收到一条错误消息。
使用继承:
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
都可以进入。