Вопрос

У меня есть SearchViewModel с этими свойствами:

    [RegularExpression("name")]
    public String SortField;

    [RegularExpression("asc|desc")]
    public String SortDirection;

Как вы можете видеть, я хочу, чтобы «имя» было единственным допустимым значением Sortfield в настоящее время, и «ASC» или «DESC» единственные допустимые значения для SortDirection.

Тем не менее, validatemodel не ловит никакой ошибки, когда значения различны, а модель State.isvalid возвращает true. В основном я могу предоставить любую ценность, и она всегда будет проходить.

Сокращенный метод контроллера:

    public ActionResult List(SearchViewModel model)
    {            
        ValidateModel(model); // No error here
        Boolean isValid = ModelState.IsValid // This is true

        //...
    }

Что я делаю не так?

Редактировать: Я не уверен, что это важно, но я использую пользовательский модель -биндера.

Это было полезно?

Решение

Это не свойства; они поля. Анкет Связывание и проверка Только Работа против свойств.

К вашему сведению - [RegularExpression] Также позволяет пользователю указать никакого значения для ввода (которое преобразуется в нуль). Если вы хотите запретить нулевые значения, используйте [Required] в дополнение к [RegularExpression].

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top