可以预先填充机器人框架中的流场吗?

我已经使用formflow来提出几个问题并最终填写表格。 生成唯一ID并在最后提供给用户。 现在使用我想要编辑表单的唯一ID。 是否可以预先填充字段? 或者还有其他方法吗?

这是我第一次创建表单时使用的代码:

public static IForm BuildForm() { OnCompletionAsyncDelegate wrapUpRequest = async (context, state) => { //Do something.... }; return new FormBuilder() .Message(Responses.NumberSelection) .Field(nameof(Name)) .Field(nameof(Age)) .Field(nameof(Address)) .Field(nameof(Information)) .Field(nameof(Email), validate: ValidateMailId) .AddRemainingFields() .OnCompletion(wrapUpRequest) .Build(); } 

现在,我想预先填充字段(名称,年龄,地址),以便我也可以使用它进行编辑。

是的,您可以将Form状态/模型的实例传递给FormDialog,并预先填充Form参数(如此处所示 )。 请记住。 如果您这样做,如果该字段具有值,则跳过填充字段的任何步骤。

如果您仍然想要询问这些参数,即使它们具有值; 您必须更改FormOptions并使用FormOptions.PromptFieldsWithValues ,它将提示输入字段,但使用传入状态作为默认值。

相关文档就在这里 。

当然可以预先填充表单流字段首先,您将查找要填充的字段,然后将它们添加到实体列表中

我正在使用LUIS,如果我从我的LUIS结果中找到合适的实体,我会将其添加到要预先填充的表单中。

  var entities = new List(result.Entities); if (entities.Any(e => e.Type == "IdNumber")) { entities.Add(new EntityRecommendation(type: "IdNumber") { Entity = entities.FirstOrDefault(e => e.Type == "IdNumber").Entity}); } 

这将在您调用构建表单之前完成。 只需确保您的“类型”是您class级的属性名称。 “实体”将是价值