我使用formflow提出几个问题并最终填写表格。生成唯一ID并在最后提供给用户。现在使用我想编辑表单的唯一ID。是否可以预先填充字段?或者还有其他方法吗?
这是我用来第一次创建表单的代码:
public static IForm<AssesmentHelper> BuildForm()
{
OnCompletionAsyncDelegate<AssesmentHelper> wrapUpRequest = async (context, state) =>
{
//Do something....
};
return new FormBuilder<AssesmentHelper>()
.Message(Responses.NumberSelection)
.Field(nameof(Name))
.Field(nameof(Age))
.Field(nameof(Address))
.Field(nameof(Information))
.Field(nameof(Email), validate: ValidateMailId)
.AddRemainingFields()
.OnCompletion(wrapUpRequest)
.Build();
}
现在,我想预先填充字段(名称,年龄,地址),以便我也可以使用它进行编辑。
答案 0 :(得分:6)
是的,您可以将Form状态/模型的实例传递给FormDialog,并预先填充Form参数(如您所见here)。请记住。如果您这样做,如果该字段具有值,则跳过填充字段的任何步骤。
如果您仍然想要询问这些参数,即使它们有值;您必须更改FormOptions并使用FormOptions.PromptFieldsWithValues,它将提示输入字段,但使用传入状态作为默认值。
相关文档为here。
答案 1 :(得分:4)
当然,您可以预先填充表单流字段 首先,您将查找要填充的字段,然后将它们添加到实体列表
我正在使用LUIS,如果我从我的LUIS结果中找到合适的实体,我会将其添加到要预先填充的表单中。
var entities = new List<EntityRecommendation>(result.Entities);
if (entities.Any(e => e.Type == "IdNumber"))
{
entities.Add(new EntityRecommendation(type: "IdNumber") { Entity = entities.FirstOrDefault(e => e.Type == "IdNumber").Entity});
}
这将在您调用构建表单之前完成。 只需确保你的&#34;键入&#34;是您的类的属性名称。 &#34;实体&#34;将是值