我想根据 Bot Framework App 中的先前字段结果提示更多字段
I want to prompt further field based on its previous field result in Bot Framework App
我在 class 中有以下 formbuilder 代码,我想根据用户的响应提示用户。如果用户对字段 "ConfirmISTTimeZone" 的响应是 "Yes" 那么它应该提示输入字段 "TimeZone" 否则它应该直接提示 "Duration"
如何做到这一点?
var formflow = new FormBuilder<FlightBooking>().Message("Tell me Flight details!")
.Field(nameof(Flightname))
.Field(nameof(StartDate), validate: ValidateStartDate)
.Field(nameof(ConfirmISTTimeZone), validate: ValidateResponseOfTimeZone)
.Field(nameof(TimeZone), validate: ValidateTimeZone)
.Field(nameof(Duration), validate: ValidateDuration)
您可以在 FieldReflector
class 上使用 SetActive
方法。
var formflow = new FormBuilder<FlightBooking>().Message("Tell me Flight details!")
.Field(nameof(Flightname))
.Field(nameof(StartDate), validate: ValidateStartDate)
.Field(nameof(ConfirmISTTimeZone), validate: ValidateResponseOfTimeZone)
.Field(new FieldReflector<FlightBooking>(nameof(TimeZone))
.SetActive(CheckActiveMethod)
.SetValidate(ValidateTimeZone))
.Field(nameof(Duration), validate: ValidateDuration)
CheckActiveMethod
只是一个获取状态的方法,return 要么为真,如果该字段处于活动状态并且应该被提示,要么为假,如果该字段可以跳过。
另一种选择是在时区
字段中包含'active: ActiveTimeZone'
.Field(nameof(TimeZone),活动:ActiveTimeZone,验证:ValidateTimeZone)
private bool ActiveTimeZone(FlightBooking state)
{
bool setActive = true;
if (!state.ConfirmISTTimeZone.Contains("Add ur condition here"))
setActive = false;
return setActive;
}
我在 class 中有以下 formbuilder 代码,我想根据用户的响应提示用户。如果用户对字段 "ConfirmISTTimeZone" 的响应是 "Yes" 那么它应该提示输入字段 "TimeZone" 否则它应该直接提示 "Duration" 如何做到这一点?
var formflow = new FormBuilder<FlightBooking>().Message("Tell me Flight details!")
.Field(nameof(Flightname))
.Field(nameof(StartDate), validate: ValidateStartDate)
.Field(nameof(ConfirmISTTimeZone), validate: ValidateResponseOfTimeZone)
.Field(nameof(TimeZone), validate: ValidateTimeZone)
.Field(nameof(Duration), validate: ValidateDuration)
您可以在 FieldReflector
class 上使用 SetActive
方法。
var formflow = new FormBuilder<FlightBooking>().Message("Tell me Flight details!")
.Field(nameof(Flightname))
.Field(nameof(StartDate), validate: ValidateStartDate)
.Field(nameof(ConfirmISTTimeZone), validate: ValidateResponseOfTimeZone)
.Field(new FieldReflector<FlightBooking>(nameof(TimeZone))
.SetActive(CheckActiveMethod)
.SetValidate(ValidateTimeZone))
.Field(nameof(Duration), validate: ValidateDuration)
CheckActiveMethod
只是一个获取状态的方法,return 要么为真,如果该字段处于活动状态并且应该被提示,要么为假,如果该字段可以跳过。
另一种选择是在时区
字段中包含'active: ActiveTimeZone'.Field(nameof(TimeZone),活动:ActiveTimeZone,验证:ValidateTimeZone)
private bool ActiveTimeZone(FlightBooking state)
{
bool setActive = true;
if (!state.ConfirmISTTimeZone.Contains("Add ur condition here"))
setActive = false;
return setActive;
}