C # - ModelState.IsValid является ложным, если не указывать значения для НЕ-ТРЕБУЕМЫХ полей [duplicate]

Некоторые пользователи могут не захотеть изменить бэкэнд для всех своих скриптов. Эта страница - http://matplotlib.org/faq/usage_faq.html#what-is-a-backend - говорит по-другому:

import matplotlib
matplotlib.use('TkAgg')

У вас есть для этого, прежде чем импортировать подпакет matplotlib или сторонний пакет, который зависит от matplotlib.

14
задан Bobby 26 May 2010 в 14:56
поделиться

2 ответа

Вам не нужно менять атрибут [Range], так как [Range] и другие встроенные валидаторы DataAnnotations no-op при задании пустого значения. Просто сделайте свойство самого типа int? а не int. Неизменяемые свойства ValueType (например, int) всегда автоматически требуются.

22
ответ дан Levi 19 August 2018 в 19:30
поделиться
  • 1
    Это работало так, как я хотел, легче, чем я думал. Благодарю. – Bobby 27 May 2010 в 10:02

Я думаю, вы могли бы переопределить объект Range и добавить это поведение.

public class OptionalRange : RangeAttribute {
    public override bool IsValid(object value) {
        if (value == null || (int)value == 0) return true;
        return base.IsValid(value);
    }
}
5
ответ дан Robert Massa 19 August 2018 в 19:30
поделиться
  • 1
    Если вы используете проверку диапазона по нулевому int, который НЕ отмечен как обязательный, в браузере все равно не будет подтверждена проверка, когда вы не укажете значение. Переопределение атрибута, как вы упомянули выше, не меняет этого поведения. Я тестирую это с помощью MVC 5.2.3 в форме Razor. – jrichview 8 January 2016 в 18:45
Другие вопросы по тегам:

Похожие вопросы: