机器人框架中的高级表单流 - 通过代码设置模板



我正在使用Formflow生成必要的问题,以便从用户那里获取所有数据。 由于我支持多种语言,因此我不能只使用这些属性。所以我阅读了它,并注意到 RView 可用于生成资源文件。 但是,由于我已经拆分和排序了我的资源文件,因此我正在尝试重用这些文件。

使用FieldReflector,我可以很容易地做到这一点。

form.Field(new FieldReflector<HolidayPlanningFlowForm>(nameof(StartDate),true)
.SetType(typeof(string))
.SetFieldDescription(Resources.HolidayResources.Planning_FlowStartDate_Describe)
.SetPrompt(new PromptAttribute(Resources.HolidayResources.Planning_FlowStartDate_Prompt)));

所以,很好。但是我不知道在哪里为TemplateUsage.NotUnderstand或TemplateUsage.DateTimeHelp定义我的模板。 在参考中,有一个在 Field 上可用的方法,ReplaceTemplate((,但这个反射器返回一个 IField,并且无法弄清楚如何让它工作。

任何人都有最好的选择(我真的不想使用 RView ;)(

我认为这里的问题是.SetType(typeof(string))如果将其更改为typeof(DateTime)则.ReplaceTemplate((将按预期运行:

public static IForm<TermFormFlow> BuildForm()
{
return new FormBuilder<TermFormFlow>()
.Message("Bla Bla")
.Field(new FieldReflector<TermFormFlow>(nameof(DateOfBirth), true)
.ReplaceTemplate(new TemplateAttribute(TemplateUsage.NotUnderstood, "I do not understand "{0}".", "Try again, I don't get "{0}"."))
.ReplaceTemplate(new TemplateAttribute(TemplateUsage.DateTimeHelp, "This field should be in the format '01/01/2018'", "Please enter a date or time"))
.SetType(typeof(DateTime))
.SetFieldDescription(Resources.HolidayResources.Planning_FlowStartDate_Describe)
.SetPrompt(new PromptAttribute(Resources.HolidayResources.Planning_FlowStartDate_Prompt)))
.AddRemainingFields()
.Build();      
}

相关内容

  • 没有找到相关文章

最新更新