こんにちは。Sitecore技術担当の山田です。
Sitecore Formsで設定した送信アクションが実行されない現象に遭遇しました。
同じ現象に遭遇された方は、以下の項目をチェックしてみてください。
送信アクションの順序
Redirect to Pageアクションよりも後のアクションは実行されません。
送信アクションの順番を入れ替えるようにしましょう。
パラメータの有無
カスタム送信アクションの場合は、アクションのパラメータが空になっているとアクションが実行されません。
この問題の解決方法は以下の2つです。
適当なパラメータを設定する
コンテンツエディタで作成したフォームの送信アクションアイテムを選択し、Parameterフィールドに適当な値を設定します。
TryParseメソッドを書き換える
パラメータが空の場合に実行されない原因は、パラメータのパース処理に失敗したとみなされるのが原因です。
いかなる場合でもパースに成功するようにTryParse
メソッドをオーバーライドしてやると実行されるようになります。
public class MyAction : SubmitActionBase<string>
{
public MyAction(ISubmitActionData submitActionData) : base(submitActionData)
{
}
protected override bool TryParse(string value, out string target)
{
base.TryParse(value, out target);
// 常にtrueを返すようにする
return true;
}
protected override bool Execute(string data, FormSubmitContext formSubmitContext)
{
// 処理
}
}
参考
- Walkthrough: Creating a custom submit action{target="_blank"}
- Custom Submit Action Sitecore 9 Forms - Sitecore Stack Exchange{target="_blank"}