我正在我的一个机器人项目中研究机器人框架的FormFlow功能。机器人需要从用户那里获得有关日期范围(From和To)的输入。表单流程有效,但机器人需要在字符串中输入DateTime。为了避免人为错误,我希望它是一个日期选择器(如自适应卡中的日期选择器)而不是用户输入的字符串。
我尝试明确设置字段类型,但由于某种原因它不起作用。请参阅下面的代码。
[Serializable]
public class Leave
{
[Prompt("Select type of leave you want to apply.")]
public LeaveTypeEnum LeaveType;
[Prompt("Vacations from date")]
public DateTime? From;
[Prompt("To date")]
public DateTime? To;
public static IForm<Leave> BuildForm()
{
return new FormBuilder<Leave>().Message
("Fill in the form.")
.Field(new FieldReflector<Leave>(nameof(From)).SetType(typeof(DateTime)))
.Field(nameof(From))
.Field(nameof(To))
.Build();
}
}
我们可以显示datepicker吗?
简短的回答是否定的,botframework中没有DatePicker组件。
您应该通过使用Microsoft的Recognizers-Text
GitHub项目,通过用户的文本获取日期时间并处理多种格式:https://github.com/Microsoft/Recognizers-Text
它用于解析几种类型的文本输入,DateTime
是提供的类型之一。它有NuGet包装。