Сделайте правила проверки на стороне клиента и на стороне сервера одинаковыми

У меня есть приложение, которое использует ASP.NET MVC и KnockoutJS для части MVVM. Сервер связывает данные с сервером с помощью JSON. Клиент обрабатывает данные и после этого выполняет стандартный обратный вызов POST.

Теперь я должен разобраться с такой бизнес-логикой, как:

  • Значение property1 должно быть больше 10, если property2 == "FOOBAR"
  • Свойство2 должно быть!= ""

И т. Д. И т. Д. (Есть много условий, с которыми я должен справиться)

Итак, чтобы упростить задачу, можно ли избежать дублирования кода между кодом на стороне сервера (C#) и на стороне клиента (JS)? Идея состояла бы в том, чтобы определить правила проверки в одном месте (возможно, используя аннотации данных) и использовать эти правила для генерации кода JS (для проверки на стороне клиента) или кода C# (для проверки на стороне сервера).

Спасибо заранее!

1 ответ

Решение

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

Например, ваш второй может быть достигнут с помощью [Required]

Для тех, которые требуют что-то немного больше (например, первый сценарий, который вы упомянули), вы можете взглянуть на Remote проверить или реализовать свои собственные аннотации (но это становится немного сложнее при подключении к валидации jQuery для добавления новых аннотаций).

Другие вопросы по тегам