我正在开发一个 Kentico 应用程序 V12(在相同的代码将部署到 12 到 7 的其他安装之后),我添加了一个新的表单控件。在我的情况下,控件用于 Google Recaptcha V3 令牌(所以我不需要保存值),所以这些是我的步骤:
- 我通过 Kentico 界面添加了新的表单控件
- 我在一个表单中添加了一个新字段来测试功能
- 我添加了 Javascript 部分来管理 recaptcha 验证
实际上我能够管理客户端的所有流程,我现在的目标是在保存数据之前验证令牌,所以我在我的 ascx 文件中添加了这段代码
public partial class CMSModules_ReCAPTCHA : FormEngineUserControl
{
private static string GOOGLE_RECAPTCHA_LIBRARY_URL = "https://www.google.com/recaptcha/api.js";
public override bool IsValid()
{
return this.Validate();
}
public override object Value
{
get
{
// How can I get the value?
}
set { }
}
private bool Validate()
{
// Here's the code to validate the token
}
}
如果我发送表单,我可以在检查器上看到令牌已发送,但是如何在我的 ascx 文件中获取该值并在验证不成功时收到错误消息?我试过了,CMS.Helpers.ValidationHelper.GetString(Form.GetFieldValue("reCAPTCHA"))
但它不起作用。reCAPTCHA 它是字段的名称,该值作为 g-recaptcha-response 发送。