C# fluent验证自定义消息,具体取决于其他属性

C# fluent验证自定义消息,具体取决于其他属性,c#,fluentvalidation,C#,Fluentvalidation,我有这个实体 public class Entity { [Key] public int Id { get; set; } public int RequestTypeId { get; set; } public int DepartmentTypeId { get; set; } ... } 我想在DepartmentTypeID上显示不同的错误消息,具体取决于RequestTypeId

我有这个实体

 public class Entity
    {
        [Key]
        public int Id { get; set; }
        public int RequestTypeId { get; set; }
        public int DepartmentTypeId { get; set; }
        ...

    }
我想在
DepartmentTypeID
上显示不同的错误消息,具体取决于
RequestTypeId

例如:

When(m => m.RequestyTypeId == 1,
 () => {
    RuleFor(m => m.DepartmentTypeID).NotEmpty().WithMessage("Custom Message 1");
});

When(m => m.RequestyTypeId == 2,
     () => {
        RuleFor(m => m.DepartmentTypeID).NotEmpty().WithMessage("Custom Message 2");
});

这不起作用。。。我做错什么了吗?如何处理这种情况?

代码看起来正确。您是只看到一个错误还是没有看到任何一个错误?我看到默认的.net MVC错误->“'Department Type I D'不能为空”或类似的内容。我看不到自定义消息。如果我将RuleFor移到外部,它将正常工作。如果在任一时间中添加一个RuleFor,则新的RuleFor工作,但DepartmentTypeID RuleFor不工作。如果这有道理的话。。。这有点奇怪,可能和MVC有关。我可以使用您输入的内容在控制台应用程序中看到正确的行为。如果你试着像这样使用比更伟大的
会怎么样;它在功能上与(m=>m.DepartmentTypeID)的
NotEmpty
-
规则相同。大于(0)。WithMessage(“自定义消息1”)