Как обеспечить проверку уникальности поля в MVC - PullRequest
2 голосов
/ 31 марта 2010

Я работаю над созданием приложения MVC, и мне очень нравится поддержка аннотаций данных в MVC. Встроенная поддержка достаточно хороша, чтобы обеспечить простую проверку валидации. Интересно, как реализовать проверку уникальных полей с помощью пользовательских аннотаций данных? Например, у меня есть модель представления, которая требует, чтобы пользователь зарегистрировал новое имя для входа, есть ли способ проверить (используя Model.IsValid), не существует ли имя перед вызовом db submit?

Ответы [ 2 ]

1 голос
/ 31 марта 2010

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

Я был бы более склонен просто пытаться писать в базу данных и иметь уникальное ограничение в таблице. Если вы получите ошибку, указывающую на наличие ошибки вставки дубликата, вы просто покажете ее пользователю.

Я бы не стал читать дальше и проверять себя.

EDIT

Полагаю, вы также можете выполнить проверку в коде, который выполняет вставку. Вы можете прочитать и, если ничего не найдено, вставить.

Если вы найдете дубликат, вы можете добавить к правилам нарушения проверки моделей и вернуть его, чтобы ошибка отображалась в сводке проверки на странице.

0 голосов
/ 31 марта 2010

Создайте свой собственный атрибут, который наследуется от ValidationAttribute (база для всех атрибутов проверки в пространстве имен DataAnnotations). Переопределите метод IsValid проверкой уникальности идентификатора пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...