BotFramework .NET SDK,v4
我了解 InputDialog 上的重试逻辑将在验证规则失败时触发。例如。用户在 NumberInput 上输入非数字值或在对话框中定义的验证表达式失败。
在我的场景中,(在自适应对话框中),用户输入需要针对外部 API 调用进行验证,如果验证失败,用户应该重新输入值。问题是,一旦最大重试次数超过通过调用外部 API 调用完成的验证,Bot Framework .NET SDK 本地实现重试和退出对话框的方法是什么?
到目前为止,我正在尝试通过第 1 步来实现此行为。MaxTurnCount = 2 和 AlwaysPrompt = true 的 TextInput 对话框和 DefaultValueResponse 第 2 步。CodeAction,设置对话状态的键 第 3 步。IfCondition,检查对话状态并运行 GoToAction
在此设置中,即使在执行 2 次 GoToAction 之后,也不会显示 DefaultValueResponse。
据我了解,GoToAction 创建新对话框并且不重用以前创建的对话框。因此,每次创建新对话框时,存储在 InputDialog 上的 turnCount 变量都会重置。