C# 如何使用Sitecore Webforms for Marketers(WFFM)保存多文化版本的表单提交?

C# 如何使用Sitecore Webforms for Marketers(WFFM)保存多文化版本的表单提交?,c#,asp.net,.net,sitecore,web-forms-for-marketers,C#,Asp.net,.net,Sitecore,Web Forms For Marketers,你们中的大多数人可能都知道比利时人讲多种语言。我必须在webform的保存操作中集成对这些多语言的处理。这些语言与荷兰语和法语接壤 为了处理表单,我安装了Sitecore Webforms For Marketers(WFFM)。使用WFFM,我创建了表单的两个语言版本。我已经定义了一个自定义保存操作来将表单值存储在主数据库中(作为项) 有什么问题?问题是主数据库中的某个项没有以正确的语言存储。原因是WFFM对两种语言版本的表单使用相同的自定义保存操作。有人知道如何解决这个问题吗 非常感谢 Jo

你们中的大多数人可能都知道比利时人讲多种语言。我必须在webform的保存操作中集成对这些多语言的处理。这些语言与荷兰语和法语接壤

为了处理表单,我安装了Sitecore Webforms For Marketers(WFFM)。使用WFFM,我创建了表单的两个语言版本。我已经定义了一个自定义保存操作来将表单值存储在主数据库中(作为项)

有什么问题?问题是主数据库中的某个项没有以正确的语言存储。原因是WFFM对两种语言版本的表单使用相同的自定义保存操作。有人知道如何解决这个问题吗

非常感谢


Jordy

在保存操作中,您需要首先以某种方式获取前端用户上下文语言。然后,当您访问主数据库中的存储库文件夹时,以前端用户的语言(荷兰语或法语)获取主数据库项:

现在,当您在主数据库中创建记录时,它将使用前端用户的语言

Jordy

最简单的方法是删除表单模板中“保存操作”字段上的“共享”复选框。 这样,您就可以为每种语言指定特定的操作

我想补充一点,如果你这样做,你必须用每种语言指定动作,别忘了

您可以在templates/web forms for marketers/form下找到表单模板

希望这有帮助


埃尔文

你好,乔迪。您能否在问题中添加创建项目的SaveAction中的代码?当然可以,但如何获取后端前端用户的语言?请在问题中提供一个save action的片段。可能有一种方法可以访问上下文,但我认为没有。我正在使用webservice将值存储在Sitecore项目中。webservice url是静态的。因此,您无法获取正确的上下文。如果将Web服务放在/sitecore modules文件夹中,它将具有语言上下文。看这里:乔迪,拯救行动才是最重要的。请向我们显示自定义保存操作的代码。这似乎是最好的答案。然而,这对我不起作用。该字段现在标记为[unversioned],但没有共享,但不知何故,我在一种语言中所做的更改最终也会在其他语言中进行。
Master.GetItem(storagePath, ctxLanguage)