首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从停止的位置启动FormFlow

从停止的位置启动FormFlow
EN

Stack Overflow用户
提问于 2016-11-09 13:58:10
回答 1查看 200关注 0票数 1

按照AnnotatedSandwichBot示例,您可以使用以下方法处理表单填充取消:

代码语言:javascript
复制
    private static IDialog<object> MakeRootDialog()
    {
        return Chain.From(() => FormDialog.FromForm(Form.BuilLocalizedForm))
            .Do(async (context, state) =>
            {
                try
                {
                    var completed = await state;
                }
                catch (FormCanceledException canceled)
                {
                    if (canceled.InnerException == null)
                        await context.PostAsync($"You quit on {canceled.Last}");
                    else
                        await context.PostAsync($"Sorry, I have a problem here");
                }
            });

当用户突然输入"bye“时,bot成功地说出了You quit on FieldName (然后在Bot模拟器上使用FormCanceledException进行了一个巨大的堆栈跟踪)。

但是如果我再说一遍,它就会从乞讨开始,而不是从最后一个完成的步骤开始。我怎么能做到,这样表单就从那里开始--理想的情况下,打印“欢迎回来!”之类的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-09 15:58:01

您应该捕获一个FormCanceledException<T>,其中T是您的表单模型。一旦这样做,您应该能够访问异常的LastForm属性,在该属性中,当用户退出时,您将找到部分表单。

然后,您可以使用该部分表单作为表单的初始状态(请参阅相关问题)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40508736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档