Validator.TryValidateObject не вызывает удаленную проверку

У меня есть класс с аннотацией данных удаленной проверки следующим образом:

public partial class LuInspectionWindow
{
    [Required]
    public int InspectionWindowId { get; set; }

    [Required]
    public string Description { get; set; }

    [Required]
    [DataType(DataType.Date)]
    public DateTime StartDate { get; set; }

    [Required]
    [Remote("ValidateWindowEndDate", "InspectionWindow", AdditionalFields = "StartDate")]
    public DateTime EndDate { get; set; }
}

Это вызывает эту аннотацию:

[AcceptVerbs("Get", "Post")]
public IActionResult ValidateWindowEndDate(DateTime? endDate, DateTime? startDate)
{
    int minWeeks = 8;

    if (startDate.HasValue && endDate.HasValue
            && (endDate < startDate.Value.AddDays(minWeeks * 7)))
    {
        return Json(data: $"Inspection window end date must be at least {minWeeks} weeks after start date.");
    }

    return Json(data: true);
}

Если я сделаю недействительным объект, а затем проверим его следующим образом, я получу только одну ошибку для нулевого описания (которое помечено Required), удаленная проверка вообще не проверяется.

luInspectionWindow.EndDate = luInspectionWindow.StartDate.AddDays(1);
luInspectionWindow.Description = null;

var context = new ValidationContext(
    luInspectionWindow, serviceProvider: null, items: null);

var results = new List<ValidationResult>();

var isValid = Validator.TryValidateObject(luInspectionWindow, context, results);

await _context.SaveChangesAsync();

Удаленная проверка работает нормально с точки зрения, поэтому он подключен правильно. Является Validator.TryValidateObject ожидается проверка удаленных проверок?

0 ответов

Другие вопросы по тегам