我想为用户提供一系列选择,但也允许他们键入自由格式的文本。选择提示会自动提示,直到选择了一个选项或同义词为止。
RecognizerOptions NoValue和/或NoAction似乎与此有关,但是我无法找到关于它们的优质文档。将它们设置为true无效。
AddDialog(new ChoicePrompt(promptForChoice) { RecognizerOptions = new FindChoicesOptions() { NoValue = true, NoAction = true } });
我还尝试创建一个始终返回true的“任何”验证器。
AddDialog(new ChoicePrompt(promptForChoice, validator: AnythingValidator.AnythingValidatorAsync) { RecognizerOptions = new FindChoicesOptions() { NoValue = true, NoAction = true } });
public static Task<bool> AnythingValidatorAsync(PromptValidatorContext<FoundChoice> promptContext, CancellationToken cancellationToken)
{
return Task.FromResult(true);
}
这允许提示退出,但结果为null。我可以找出用户从Context.Activity.Text中输入的内容,但这似乎不是一个非常可靠的解决方案。
PromptChoice似乎缺少一些明显的东西
答案 0 :(得分:0)
通过对用户需要选择的选项进行硬编码来进行选择。我们不能在选择中实现自由格式的文本。您可以做的是,在选择列表中添加另一个选择“其他”,并实现waterfall以获取用户输入。另外,您不能使用RecognizerOptions,因为它们与同义词相关。