是否可以根据另一个变量更改模型验证器?

时间:2019-03-18 08:05:09

标签: c# validation asp.net-core-mvc

我在想这样的事情:

[(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;

并非完全像这样写,但我认为这样最好地描述了情况

1 个答案:

答案 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来了解其背后的想法。