Сохранение данных модуля Sitefinity Forms в отдельной базе данных

Я работаю с Sitefinity CMS и пытаюсь выяснить, как сохранить данные из формы "Модуль форм" в отдельную базу данных в бэкэнде. В настоящее время все ответы сохраняются в таблице, которая создается при создании формы. Я хочу перенаправить запрос на сохранение, чтобы вместо этого пройти через мой код и сохранить данные в хранилище таблиц Azure. Есть ли способ сделать это или с помощью модуля форм я застрял на сохранение данных в таблицу, которая создается автоматически при построении формы? Я попытался создать свой собственный FormsSubmitRouteHandler, как описано здесь ( http://docs.sitefinity.com/for-developers-submit-forms-using-ajax-call), но я Должно быть, я что-то делаю не так, потому что мой код никогда не получает удар.

Любая помощь будет принята с благодарностью. Если я не объяснил себя хорошо, пожалуйста, дайте мне знать.

2 ответа

Вы должны создать новый поставщик, который реализует класс FormsDataProvider. В настоящее время Sitefinity использует OpenAccessFormsProvider - так что вы можете использовать JustDecompile, чтобы увидеть, как это было реализовано, и, вероятно, сделать что-то подобное. Затем вам нужно зарегистрировать своего нестандартного провайдера в Администрирование> Настройки> Дополнительно> Формы

Если вы не возражаете против того, чтобы ответы формы были в базе данных Sitefinity и в вашем пользовательском хранилище, вы можете подписаться на IFormEntryCreatedEvent и в своем обработчике событий вы можете написать логику сохранения формы в другом месте. См. Эту статью для получения дополнительной информации: http://docs.sitefinity.com/for-developers-forms-events

Имейте в виду, что это приведет к тому, что ответы формы будут сохранены как в базе данных SF, так и в вашем пользовательском хранилище. Кроме того, вы не сможете управлять записями, хранящимися в хранилище custyom, через бэкэнд Sitefinity. Если это ваша цель, то ответ Веселина - правильный путь, но более сложный.

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