2009-08-12 3 views
1

В моей программе mpc asp.net пользователь вводит дату в одном поле и время в другом поле. Время будет в 24-часовом режиме, так что пользователь может ввести 00:00 - 23:59, а дата должна быть в типичном мм/дд/гггг.Каков наилучший способ проверки даты и времени

Со всеми различными параметрами, доступными для проверки ввода, такими как вход javascript/jquery/masked на стороне клиента или C# в контроллере mvc, мне трудно понять, какой путь лучше.

Есть ли у кого-нибудь предложение или совет по этому вопросу?

ответ

9

Всегда, всегда серверная сторона. Валидация на стороне клиента является необязательной.

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

0

Если вы используете базу данных, вы должны использовать параметризованный запрос или хранимую процедуру для обеспечения проверки данных. Это также поможет вам с потенциальной инъекцией SQL.

Вы должны проверить на обоих концах, но важно проверить на сервере, независимо от того, что вы делаете на клиенте. Валидация клиента - это просто «приятно иметь» и помогает при взаимодействии и потоке пользователей.

3

Используйте оба варианта! Проверка на стороне клиента и сервера довольно проста в реализации.

  • Проверка на стороне клиента облегчает работу пользователя. Никто не любит ждать завершенной обратной передачи, чтобы рассказать им что-то вроде «наш сервер не делает такие даты, как вы, иностранцы».

  • Проверка на стороне сервера защищает ваши системы. Ни один сервер не хочет атаковать инъекцией sql из обработанного запроса. Однако не используйте это для удобства пользователя. Это существует исключительно для защиты ваших систем и обеспечения поддержки пользователей с отключенным javascript (и, честно говоря, кто заботится о том, как выглядит их пользовательский интерфейс).

Есть несколько прекрасных библиотек на стороне клиента, которые делают его смехотворным. Моим любимым является jquery validation plugin, но http://www.livevalidation.com/ тоже очень хорошо.

1

Я бы предложил использовать фреймворк проверки, такой как xVal для MVC 1 или встроенная поддержка DataAnnotations для MVC 2. Это позволит вам проверять валидацию на сервере и на стороне клиента таким образом, который всегда согласован.

0

Оба с акцентом на стороне сервера. Иногда люди блокируют javascript или предыдущая ошибка не позволит запустить скрипт проверки.

На сервере либо используется DateTime.Parse, либо лучше DateTime.TryParse.

Смежные вопросы