将Sitefinity表单模块数据保存到单独的数据库

时间:2017-07-18 12:14:33

标签: sitefinity sitefinity-feather

我正在使用Sitefinity CMS并尝试弄清楚如何将数据从“Forms Module”表单保存到后端的单独数据库中。目前,所有响应都保存在构建表单时创建的表中。我想要做的是重新路由保存请求,而不是通过我的代码,然后将数据保存到Azure表存储。有没有办法做到这一点或使用表单模块我坚持将数据保存到构建表单时自动创建的表?我已经尝试创建自己的FormsSubmitRouteHandler,如此处所解释的那样(http://docs.sitefinity.com/for-developers-submit-forms-using-ajax-call#register-a-form-submit-route-handler)但我必须做错了,因为我的代码永远不会被击中。

非常感谢任何帮助。如果我没有解释好自己,请告诉我。

2 个答案:

答案 0 :(得分:1)

您应该创建一个实现FormsDataProvider类的新提供程序。 目前,Sitefinity使用OpenAccessFormsProvider - 因此您可以使用JustDecompile来查看它是如何实现的,并且可能会执行类似的操作。 然后,您需要在管理中注册自定义提供商>设置>高级>表格

答案 1 :(得分:1)

如果您不介意在Sitefinity数据库和自定义存储中使用表单响应,那么您可以订阅IFormEntryCreatedEvent,并且在事件处理程序中,您可以编写将表单保存在其他位置的逻辑。 有关详细信息,请参阅此文章:http://docs.sitefinity.com/for-developers-forms-events#iformentrycreatedevent

请记住,这会导致在SF数据库和自定义存储中同时保存表单响应。此外,您无法通过Sitefinity后端管理存储在custyom存储中的条目。如果那是你的目标,那么Vesselin的回答是正确的方法,但更复杂。