Сделайте правила проверки на стороне клиента и на стороне сервера одинаковыми
У меня есть приложение, которое использует ASP.NET MVC и KnockoutJS для части MVVM. Сервер связывает данные с сервером с помощью JSON. Клиент обрабатывает данные и после этого выполняет стандартный обратный вызов POST.
Теперь я должен разобраться с такой бизнес-логикой, как:
- Значение property1 должно быть больше 10, если property2 == "FOOBAR"
- Свойство2 должно быть!= ""
И т. Д. И т. Д. (Есть много условий, с которыми я должен справиться)
Итак, чтобы упростить задачу, можно ли избежать дублирования кода между кодом на стороне сервера (C#) и на стороне клиента (JS)? Идея состояла бы в том, чтобы определить правила проверки в одном месте (возможно, используя аннотации данных) и использовать эти правила для генерации кода JS (для проверки на стороне клиента) или кода C# (для проверки на стороне сервера).
Спасибо заранее!
1 ответ
Я полагаю, что встроенные аннотации в сочетании с добавлением проверки jQuery будут соответствовать большинству ваших бизнес-требований.
Например, ваш второй может быть достигнут с помощью [Required]
Для тех, которые требуют что-то немного больше (например, первый сценарий, который вы упомянули), вы можете взглянуть на Remote
проверить или реализовать свои собственные аннотации (но это становится немного сложнее при подключении к валидации jQuery для добавления новых аннотаций).