Проверка асинхронного API в пользовательском элементе Optimizely Forms (CMS 11) не препятствует отправке – правильный лиC#

Место общения программистов C#
Anonymous
Проверка асинхронного API в пользовательском элементе Optimizely Forms (CMS 11) не препятствует отправке – правильный ли

Сообщение Anonymous »

Я работаю с Optimizely CMS 11 и использую Optimizely Forms.
Я создаю пользовательский элемент Forms, который должен:
  • вызывать внешний API
  • проверять введенное пользователем значение (например, проверять, соответствует ли значение уже существует в БД)
  • Запретить отправку формы, если API возвращает недействительный результат
Итак, это настоящая асинхронная проверка, а не просто проверка регулярных выражений на стороне клиента или проверка обязательных полей.
Важно: я хочу, чтобы проверка выполнялась одновременно:
  • На интерфейсе (перед отправкой)
  • На серверной части (в целях безопасности)
Поскольку отправка форм в Optimizely осуществляется по принципу «выпустил и забыл», я хочу полностью предотвратить отправку, если значение неверно.
Текущая структура
  • Бэкенд: .NET Framework (CMS 11)
  • Фронтенд: React
  • Оптимально отображает HTML-форму на стороне сервера
  • Я внедряю визуализированную HTML-форму в компонент React (

    Код: Выделить всё

    dangerouslySetInnerHTML
    )
  • Я полагаюсь на встроенное поведение отправки Optimizely Forms.
Поток:
  • Оптимизирует рендеринг формы
  • React монтирует и внедряет HTML-форму
  • Пользователь отправляет данные
  • Мой пользовательский валидатор элементов работает
  • Валидатор вызывает API асинхронно
  • На основе результата API → разрешать или блокировать отправку
Что я пробовал
Чтобы убедиться, что мой пользовательский валидатор подключен правильно, я сначала скопировал встроенный обязательный валидатор и изменил его.
(См. скриншоты ниже)
Изображение

Изображение

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

Из-за этого я начал задаваться вопросом:
  • Не регистрируется ли мой валидатор правильно?
  • Рендеринг формы внутри React нарушает конвейер проверки Optimizely?
  • Или асинхронная проверка просто не поддерживается таким образом?


Подробнее здесь: https://stackoverflow.com/questions/798 ... preventing

Вернуться в «C#»