Как Вы избегаете дублирования проверки на сервере и клиентский?

Не пропустите DateTime.MinValue. Это 1 января 0001 года, что меньше минимального значения для SQL Server datetime (01.01.1753). Если вы не работаете с историческими данными, которые уходят так далеко, вы можете просто создать собственную константу для значение, как 1/1/1753 и использовать это.

DateTime.MaxValue хорошо, потому что для типа .NET и SQL-сервера это 31.12.999.

Чаще всего мы просто используем datetime2 в качестве нашего типа в SQL Server.

11
задан josh 22 April 2009 в 19:14
поделиться

8 ответов

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

2
ответ дан 3 December 2019 в 08:57
поделиться

Существуют платформы, которые могут генерировать проверку на стороне клиента из конфигурации проверки на стороне сервера.

Теперь я не знаю, какой язык или фреймворки вы используете, но, возможно, эта статья может вам помочь: http://www.emadibrahim.com/2008/09/08/client-server-side -validation-in-aspnet-mvc /

Он использует компонент Castle Validator вместе с JQuery и добавляет клей для генерации проверки на стороне клиента на основе атрибутов проверки на стороне сервера. Это для asp.net mvc.

/ Asger

5
ответ дан 3 December 2019 в 08:57
поделиться

As others mentioned, you should keep the duplication, as the client-side validation is to help the application react sooner to help the user, but, the real validation is on the server-side, as you should never trust anything passed in until it has been validated. You will probably do more extensive validation on the server-side, esp if there is a need to check against a data source, for example, is the username unique would be on the server-side, but is the username long enough, or an email address, could be done on the client-side, and server-side.

I tend to put in comments when there is duplication, especially if I am using a regular expression, to make certain that what changes in one is changed in another.

Good unit tests will help to ensure that these two will always remain in sync.

2
ответ дан 3 December 2019 в 08:57
поделиться

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

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

Хорошо разработанное приложение использует оба.

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

2
ответ дан 3 December 2019 в 08:57
поделиться

В большинстве случаев лучше проводить проверку на стороне сервера. У вас есть много разных способов сделать это проще, например, Ajax или использование липких форм в PHP. Лично я склонен выполнять проверку на стороне сервера, потому что у пользователя есть возможность отключить JavaScript, и они не могут отключить проверку на сервере .....

0
ответ дан 3 December 2019 в 08:57
поделиться

Я думаю, что лучший способ - использовать компонент, который предлагает оба варианта. Их код был протестирован, и вам не нужно его поддерживать. Я использовал элементы управления Питера Блюма в прошлом с большим успехом. Кроме этого, я думаю, вам придется поддерживать две базы кода, если вы хотите предложить обе. Существует инструмент под названием Script # , который может помочь скомпилировать C # в Javascript (он выполняет перевод, а не реальную компиляцию), но я не уверен, насколько хорошо он будет работать в этой ситуации.

2
ответ дан 3 December 2019 в 08:57
поделиться

What you can do is have the server-side validation logic being run by web services that your client-side validation can call via AJAX and also when you post back to your server.

0
ответ дан 3 December 2019 в 08:57
поделиться

В Asp.net версии 1 были элементы управления валидатора, чтобы делать то, что вы просите

http: // msdn. microsoft.com/en-us/library/yb52a4x0.aspx

0
ответ дан 3 December 2019 в 08:57
поделиться
Другие вопросы по тегам:

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