MVC3 .NET - Когда использовать сценарий проверки клиента - PullRequest
2 голосов
/ 12 января 2012

После некоторого совета, правильна ли моя интерпретация для следующего сценария:

Простой экран, который создает / обновляет (2 отдельных представления - создает представление и обновляет представление) пользовательскую запись.

Экран содержит 3 поля: Название, Номер телефона, Номер государственного страхования (номер NI)

У нас есть проверка на: номер телефона (чтобы убедиться, что это правильный формат) Номер NI (чтобы убедиться, что это правильный формат)

В базе данных имеется уникальный индекс по номеру NI

Это мое понимание - я полностью открыт для людей, говорящих мне, что это неправильно или есть лучший способ ...

Итак, если вводится новая запись, нам нужно проверить, уникален ли номер NI - таким образом, мы должны выполнить POST и запустить проверку на стороне сервера - это означает, что проверка Javascript не имеет значения - и поэтому вся проверка должна произойдет на стороне сервера.

Если запись извлекается из базы данных и затем обновляется, проверка на стороне клиента имеет значение, если номер NI не обновляется.

Итак, мне не нужны никакие подпрограммы проверки на стороне клиента для представления «Создание», так как мне всегда нужно убедиться, что номер NI уникален, тогда как для представления обновления мне нужны подпрограммы проверки на стороне клиента, поскольку номер NI может не будет обновляться, но мы все равно захотим проверить другие поля (где это необходимо) на стороне клиента, чтобы минимизировать сетевой трафик.

Я прав?

Спасибо

1 Ответ

0 голосов
/ 12 января 2012

Проверка на стороне клиента для базовых правил, таких как обязательное поле, формат телефона, число между диапазонами и т. Д. Наибольшее преимущество проверки на стороне клиента состоит в том, что на вашем сервере будет меньше накладных расходов (поскольку неполные формы никогда не будут опубликованы ) и даст вашему клиенту лучший опыт, так как ему не нужно будет ждать ответа сервера.

Проверка на стороне сервера для как основных правил, так и сложных правил , таких как уникальное поле, поиск в других системах и т. Д. Итак, да, вы продублируете эти правила.

В настоящее время я использую Свободная проверка + Ненавязчивая проверка на стороне клиента , которая позволяет использовать проверку на стороне клиента и на стороне сервера без необходимости дублирования кода. Если проверка сложна, она не будет доступна в центре, но основные проверки будут выполнены с обеих сторон. И самое главное, мне нужно всего лишь один раз написать эти правила. Кстати, он также работает с аннотациями данных, которые являются механизмом проверки по умолчанию для ASP.NET MVC 3.

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