К сожалению, это не то, что FluentValidation может переопределить - модель расширяемости для проверки MVC во многих местах несколько ограничена, и я не смог найти способ переопределить это конкретное сообщение.
Альтернативный подход, который вы можете использовать, состоит в том, чтобы определить два свойства в вашей модели представления - одно в виде строки, а другое в виде двойного значения, допускающего обнуляемость.Вы бы использовали строковое свойство для привязки MVC, а свойство double выполнит преобразование (если это возможно).Затем вы можете использовать это для проверки:
public class FooModel {
public string Foo { get; set; }
public double? ConvertedFoo {
get {
double d;
if(double.TryParse(Foo, out d)) {
return d;
}
return null;
}
}
}
public class FooValidator : AbstractValidator<FooModel> {
public FooValidator() {
RuleFor(x => x.ConvertedFoo).NotNull();
RuleFor(x => x.ConvertedFoo).GreaterThan(0).When(x => x.ConvertedFoo != null);
}
}