首页 > 解决方案 > 设置 formflow 对话框字段值,以后不提示

问题描述

SetDefine()用来为我的机器人对话框中的一个字段提供一个值..

return builder
    .Field(new FieldReflector<CarValuationDialog>(nameof(UserName))
    .SetDefine(async (state, field) =>
    {
        field.SetValue(state, userName);
        return await Task.FromResult(true);
    }))

userName只是调用该return builder行的函数中的一个变量。该属性UserName定义为..

public string UserName { get; set; }

我遇到的问题是,当我在模拟器中运行机器人时,我首先看到的是......

在此处输入图像描述

如何配置该属性UserName,使其不会在机器人中提示输入值?

标签: botframework

解决方案


由于您正在定义您的用户名字段并且您不希望机器人提示该字段,您可以使用 .SetActive

            .Field(new FieldReflector<CarValuationDialog>(nameof(UserName))
            .SetDefine(async (state, field) =>
            {
                field.SetValue(state, "username");
                return await Task.FromResult(true);
            })
            .SetActive((state) => String.IsNullOrEmpty(state.UserName)))

因此,仅当该字段为 Null 或为空时才会启动提示。您可以尝试其他返回 bool 的函数以更好地匹配您的用例。


推荐阅读