我有多个相关的ViewModel:
每个都包含密码属性的多个注释属性。
我希望能够只定义一次这些属性。
我尝试使用MetadataType属性将每个ViewModel与包含所有关联属性的类相关联,但由于这包含可能不在单个View Models中的属性,因此收到错误消息。
答案 0 :(得分: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
的内容都可以进入。