gpt4 book ai didi

c# - 营销人员的 Web 表单自定义提交操作错误消息

转载 作者:行者123 更新时间:2023-11-30 23:22:07 25 4
gpt4 key购买 nike

我为继承自 WffmCheckAction 类的 WFFM 表单创建了新的提交操作,它基本上执行服务器端验证,以防客户端验证被绕过。我为此提交操作创建的自定义类如下所示:

public class EmailValidation : WffmCheckAction 
{
public override void Execute(Sitecore.Data.ID formid, IEnumerable<ControlResult> fields, ActionCallContext actionCallContext = null)
{
ControlResult emailField = fields.FirstOrDefault<ControlResult>(f => f.FieldName.ToLowerInvariant().Trim().Equals(Constant.Cms.WFFM.Fields.Email.ToLowerInvariant()));

if (emailField == null) //field not found.
return;

var emailVal = emailField.Value;
if (emailVal != null && !string.IsNullOrEmpty(emailVal.ToString()))
{
if (!IsValidEmail(emailVal.ToString()))
{
throw new ArgumentException("Invalid Email Address");
}
}
}

bool IsValidEmail(string email)
{
try
{
var addr = new System.Net.Mail.MailAddress(email);
return true;
}
catch
{
return false;
}
}
}

在 sitecore 6.5 上,如果电子邮件无效(IsValidEmail 返回 false),表单中将显示错误消息“无效的电子邮件地址”。使用 Web Form For Marketers 8.1 rev 160523 升级到 sitecore 8.1 后,相反,我会收到默认的保存操作失败消息,在我的例子中是“我们在处理您的请求时遇到技术困难。您的数据可能没有正确保存。”我尝试更新表单验证中的错误消息 enter image description here

但我仍然收到默认错误消息。我怀疑通过升级,他们改变了行为,并且因为我抛出了一个 ArgumentException,WFFM 将其视为错误并显示默认消息。如何使用自定义提交操作显示自定义消息?

最佳答案

已确认为 Sitecore 错误。补丁的引用号是 78434。

关于c# - 营销人员的 Web 表单自定义提交操作错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38912726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com