我在想这样的事情:
[(if (string.IsNullOrEmpty(a) && string.IsNullOrEmpty(b)), ErrorMessage = "Both 'a' and 'b' cannot be null")]
string a;
[(if (string.IsNullOrEmpty(a) && string.IsNullOrEmpty(b)), ErrorMessage = "Both 'a' and 'b' cannot be null")]
string b;
并非完全像这样写,但我认为这样最好地描述了情况
答案 0 :(得分:1)
您为什么不使用FluentValidation?您可以轻松地创建所需的自定义验证程序,并且还存在一些预定义的验证程序。
您希望在FluentValidation中使用When/Unless条件:
RuleFor(m => m.FirstName).NotEmpty().When(m => string.IsNullOrEmpty(m.LastName));
或
RuleFor(m => m.LastName).NotEmpty().Unless(m => !string.IsNullOrEmpty(m.FirstName));
如果您需要属性验证器,可以查看FoolProof来了解其背后的想法。