Обязательные поля для объектов запроса не применяются - PullRequest
0 голосов
/ 06 февраля 2020

Я просматриваю этот пример от MS, но не вижу обязательной аннотации, применяемой к строковым полям. Это работает на других полях, но не на строках. Я подозреваю, что это потому, что строки могут быть обнуляемыми, и что-то просто должно конвертировать недостающее поле в пустую строку? В приведенном ниже примере я вижу ошибку в ThisField, но не в ThatField. Любые идеи о том, что нужно изменить?

using System.ComponentModel.DataAnnotations;

...
[Required(ErrorMessage = "This field is required.")]
public double? ThisField { get; set; }

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

1 Ответ

0 голосов
/ 06 февраля 2020

Обновление - для этой спецификации c ThatField, я также использовал собственный валидатор, и кажется, что оба валидатора будут запущены. Таким образом, даже если значение не указано, мой пользовательский валидатор все еще работал и не работал из-за нулевого значения. Другими словами, [Обязательно] прекрасно работает для этого поля.

Это работает:

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

Это не:

[Required, CustomAttribute("valueA", "valueB", "valueC")]
public string ThatField { get; set; }
...