Tôi có đoạn code sau trong validator:FluentValidation qua tham số để WithMessage
RuleFor(mb => mb.Amount).
Must((mb, amount) =>
{
var betLimit = _battlesService.GetBetLimit(mb.BattleId);
mb.Amount <= betLimit;
}).
WithMessage("Bet should be less than {0}", "bet limit value should be placed here");
Có cách nào để vượt qua giá trị betLimit phương pháp WithMessage? Giải pháp duy nhất tôi thấy là đặt giá trị betLimit thành một số thuộc tính của ViewModel và sau đó truy cập nó trong quá tải WithMessage với funcs. Nhưng nó là xấu xí.
Trên thực tế betLimit hồi được dựa trên một số tài sản khác của mb. Tôi chỉ cố gắng để đơn giản hóa một ví dụ và làm cho nó một chút sai – SiberianGuy
Nhưng nơi nào betLimit bên trong Phải đến từ trong ví dụ thứ hai của bạn? – SiberianGuy
Ah tệ hại của tôi, tôi đã tập trung vào phần WithMessage. Có vẻ như bạn sẽ phải nhấn dịch vụ đó hai lần. Nếu hai vòng dịch vụ gây ra đau, bạn có thể cache kết quả của điều đó trong HttpContext ... nhưng tôi không thể tưởng tượng có một cách để lấy thứ gì đó từ quy tắc Must để giao tiếp với cuộc gọi WithMessage. –