gpt4 book ai didi

Sitecore|WFFM|带有详细信息的自定义错误消息|与表单在同一页面上

转载 作者:行者123 更新时间:2023-12-01 00:49:36 40 4
gpt4 key购买 nike

我为我的一个页面设置了一个营销人员 Web 表单。

我有 自定义提交操作 为它编写的代码片段如下所示 -

public class **CustomFormSubmit : ISaveAction**
{
public void Execute(ID formid, AdaptedResultList fields, params object[] data)
{

try
{
**//var returnValue= Custom Logic to save form data // returns true or false**
}
catch (Exception ex)
{
Logger.Log(ex.Message + ":" + builder, ExceptionCategory.Error);
throw;
}
}

在我上面 Web 表单 - 成功模式是 - SuccessMode/Redirect,我为它配置了一个成功页面。

我在上述场景中的要求是,如果 returnValue 为 false ,则将用户保留在同一页面上(使用表单)。 (如上面的代码片段所示)

任何人都可以在上述情况下指导我 - 如何将用户保留在同一页面上并填写表单中的值,以便用户可以再次提交。
产品详细信息 - 7.2 rev。 141226,营销人员的 Web 表单 2.4 修订版 140117

添加 更多详情 -
如果上面的代码片段中的 return 为 false,我不确定如何返回我的页面而不是重定向。
一旦点击提交按钮,就会调用上面的函数 - 执行 - 。
我如何返回页面 - 我是否需要覆盖任何功能或自定义某些内容。

任何异常都来 保存数据时-然后控件返回到同一页面,所有值由用户保留-使用 在 Sitecore 中配置的保存操作失败消息 .
所以我的要求是 在保存数据时,当 false 作为返回值出现时,转到发生异常时的表单,并放置每次可能更改的自定义错误消息,因此不是静态配置,而是动态配置。
谢谢!
索拉布

最佳答案

一种选择是创建自定义表单验证操作。您可以在此处保存数据,尽管最好在此处针对您的 API 验证数据,然后在自定义保存操作中保存数据,因为这对于 WFFM 的运作方式似乎更合乎逻辑。

using Sitecore.Data;
using Sitecore.Form.Core.Controls.Data;
using Sitecore.Form.Core.Submit;
using System;
using System.Collections.Generic;

namespace Custom.WFFM
{
public class CustomVerificationStep : BaseCheckAction
{
public string FailedMessage { get; set; }

public override void Execute(ID formid, IEnumerable<ControlResult> fields)
{
// Call your API
// You have access to the fields, so you can pass them through as parameters to your if needed
bool flag = ServiceAPI.ValidateUserData(param1, param2, etc);

if (!flag)
{
throw new Exception(string.Format(this.FailedMessage ?? "There was an error while verifying the data against the service call"));
}
}

public override ActionState QueryState(ActionContext context)
{
return ActionState.DisabledSingleCall;
}
}
}

/sitecore/system/Modules/Web Forms for Marketers/Settings/Actions/Form Verification下创建对应的Verification Action :

Form Verification Action

您可以通过在 Parameters 中设置它来更改错误消息。字段为 <FailedMessage>Custom Failed Error Message</FailedMessage> .

然后将您的验证步骤添加到您的表单中:

Verification - Add to form

如果每个表单需要不同的错误消息,那么您可以设置错误消息以从“错误消息”选项卡中显示。

然后用户将返回到相同的状态,而不会调用任何保存操作并且仍然填写表单字段。

关于Sitecore|WFFM|带有详细信息的自定义错误消息|与表单在同一页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31957098/

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