Проблема ValidAteModel с DataNantations
-
24-10-2019 - |
Вопрос
У меня есть 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]
.