Member 14908411 Ответов: 1

Expressiveannotations проверка на стороне клиента не срабатывает


Я использую выразительный аннотации к ручке обязательным conndition


моя модель
[RequiredIf("IsSellable == false", ErrorMessage ="Offer code is required!")]
public string Code { get; set; }
public bool IsSellable { get; set; }

всякий раз, когда я нажимаю на кнопку Сохранить, проверка на стороне клиента не работает.

Примечание: Я скачал expressive в своей модели библиотеки классов, и мои представления находятся в отдельном проекте

Что я уже пробовал:

Все валидации на стороне клиента в моей форме срабатывают, а не выше.

Sandeep Mewara

Похоже, что значение IsSellable истинно, поэтому проверка не срабатывает. Вы это проверили?

Member 14908411

Я подтвердил, что IsSellable value является ложным

1 Ответов

Рейтинг:
1

BillWoodruff

Из выразительных аннотаций GitHub : [^]

Цитата:
Атрибут обязательным, не работает, что случилось?
Убедитесь, что обязательным является приложить к области, которая принимает нулевые значения.

Другими словами, излишне применять этот атрибут к полю с ненулевым типом значения, например int, которое представляет собой структуру, представляющую интегральный числовой тип, DateTime и т. д. Поскольку значение такого типа всегда ненулевое, требование requirement постоянно выполняется. Вместо этого, для типов значений используйте их формы, допускающие значение null, напр. int?, Типа datetime?, и т. д.

[Обязательным("правда")] // никакого эффекта...
общественного int значение { получить; набор; } // ...если инт? предназначенный
[Обязательным("правда")] // никакого эффекта...
public DateTime Value { get; set; } // ...если только DateTime? предназначенный
Если это вам не поможет, вы можете открыть проблему,


Member 14908411

Но мне нужно запустить проверку на стороне клиента для свойства string, которое по умолчанию обнуляется

BillWoodruff

Итак, откройте кейс на сайте GitHub и спросите, возможно ли то, что вы хотите.