FormFlow отключает переключение между полями, когда пользователь отправляет имя поля в качестве значения
Мы используем FormFlow в нашем боте. FormFlow имеет функцию, которая позволяет пользователю вводить имя поля, и он переключается на заданное поле. Допустим, у нас есть класс модели, как это
public class SampleModelClass
{
public string FirstField { get; set; }
public string SecondField { get; set; }
}
Когда пользователя просят ввести FirstField, существует вероятность того, что пользователь действительно может ввести "первое поле", что приводит к повторному заданию вопроса для FirstField. Есть ли способ отключить это и принять "первое поле" в качестве значения FirstField? Переименование FirstField будет работать, но мы ищем лучшее решение
1 ответ
Когда пользователя просят ввести FirstField, существует вероятность того, что пользователь действительно может ввести "первое поле", что приводит к повторному заданию вопроса для FirstField. Есть ли способ отключить это и принять "первое поле" в качестве значения FirstField? Переименование FirstField будет работать, но мы ищем лучшее решение
Вы можете попытаться использовать атрибут Термины (с регулярным выражением), чтобы определить список терминов, которые используются для сопоставления ввода пользователя с полем или значением в поле. Следующий пример для справки.
[Serializable]
public class SampleModelClass
{
[Terms(@"^[.*]$")]
public string FirstField { get; set; }
[Terms(@"^[.*]$")]
public string SecondField { get; set; }
public static IForm<SampleModelClass> BuildForm()
{
return new FormBuilder<SampleModelClass>()
.Message(async (state) => { return new PromptAttribute($"Welcome to the form bot!"); })
.Build();
}
}
Результат испытаний: