ExpressiveAnnotations.Attributes RequiredIf проверки не работает - PullRequest
0 голосов
/ 27 июня 2019

У меня не работает следующая проверка и я не могу решить, почему это так?

    [Display(Name = "Bus")]
    [RequiredIf("SelectedWidgetText == 'Referral'", ErrorMessage = "Please select a Vehicle.")]
    public int DepotId{ get; set; }

    public string SelectedWidgetText { get; set; }

Я также пробовал следующее:

[Display(Name = "Bus")]
[AssertThat("SelectedWidgetText == 'Referral'", ErrorMessage = "Please select a Vehicle.")]
public int DepotId{ get; set; }

на стороне сервера, при обращении к методу modelstate.isvalid, он возвращает false и выбрасывается сообщение об ошибке The DepotId field is required.

1 Ответ

0 голосов
/ 27 июня 2019

, просто изменив DepotId на Nullable, как показано ниже, проверка начала работать, как и ожидалось:

public int? DepotId{get;set;}

После прочтения документации похоже, что типы значений должны быть обнуляемыми, прежде чем с ними будет работать аннотация данных.

...