Microsoft机器人框架:如何根据用户对上一个字段的输入填充表单流字段值



对于表单流案例,我具有以下属性:

public enum Offices{}
[Describe("Country")]
public string Country;
[Prompt("Which office are you working in?{||}")]
public Offices Office; 

我想根据指定的国家/地区填充办公室。 例如,如果用户输入印度作为"国家/地区"字段,我希望办公室是孟买、新德里和浦那。如果用户进入阿联酋,我希望办公室是迪拜和阿布扎比等......

我怎样才能做到这一点?

这是一个类似于"如何在机器人框架 C# 中使用枚举类别和子类别?"的问题,至少在如何做你需要的事情上。

使用表单生成器,您可以动态定义表单。FormBuilder上的完整文档在这里。

回顾之前的StackOverlfow答案,您使用FieldReflector,这将允许您设置异步委托。在该委托中,您将根据州构建城市列表。国家/地区值。 它将看起来像这样:

public static IForm<Offices> BuildForm()
{
return new FormBuilder<Offices>()
.Message("Welcome!")
.Field(nameof(Country))
.Field(new FieldReflector<Offices>(nameof(Office))
.SetType(null)
.SetDefine(async (state, field) =>
{
//// Define your Officelogic here
switch (state.Country)
{
Country.Dubai:
////logic to add Dubai city
break;
Country.UAE:
////logic to add UAE cities
break;
default:
break;
}

return true;
}))              
.Build();
}

相关内容

  • 没有找到相关文章

最新更新