Проверка асинхронного 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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