Это происходит из-за комбинации двух вещей.
Во-первых, вы пытаетесь использовать значения Enum 0 для того, что выглядит как необнуляемое поле. В этом случае значение 0 зарезервировано для нуля. Со страницы документов formflow :
Любой из типов данных может быть обнуляемым, который можно использовать для моделирования, что поле не имеет значения. Если поле формы основано на свойстве перечисления, которое не имеет значения NULL, значение 0 в перечислении представляет значение NULL (т. Е. Указывает, что поле не имеет значения), и вы должны начать значения перечисления с 1. FormFlow игнорирует все другие типы свойств и методы.
Второй момент заключается в том, что, поскольку вы используете числовые значения 1,2,3 и т. Д. В атрибуте Условия, например [Terms("1", "One")]
, по умолчанию поток форм будет пытаться выровнять эти значения с правильным перечислением. Поэтому я думаю, что происходит то, что он позволяет вам выбрать «3», как вы использовали в своем примере, и, поскольку 3 - это один из ваших терминов [Terms("3", "Three")]
, он предлагает вам эти варианты. но в значениях нумерации нумерации индекса, поскольку 0 зарезервировано, фактическое значение перечисления [Terms("2", "Two")] Two,
равно 3. Так что он не знает, что вы имеете в виду.
Итак, чтобы заставить это работать, используя эти термины, было бы так:
public enum PreviousOwnerOptions
{
[Terms("1", "One")]
One=1,
[Terms("2", "Two")]
Two,
[Terms("3", "Three")]
Three,
[Terms("4", "Four")]
Four,
[Terms("5", "Five")]
Five,
[Terms("6", "Six")]
Six,
[Describe("More than six")]
[Terms(".*More than six", "more")]
MoreThanSix,
[Describe("Owned from new")]
[Terms("new", ".*[O|o]wned from new")]
OwnedFromNew
}