我有一个表单流对话框,其中包含以下问题定义为枚举
public enum PreviousOwnerOptions
{
[Describe("Owned from new")]
[Terms("0", "new", ".*[O|o]wned from new")]
OwnedFromNew = 0,
[Terms("1", "One")]
One,
[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
}
Run Code Online (Sandbox Code Playgroud)
以下是用户对问题的看法......
我遇到的问题是,如果输入数字"3"作为答案,那么响应是这样的......
看起来机器人不确定我的意思是在第3位或答案"三".我认为这个Terms属性可以解决这个问题吗?
我该如何解决这个问题?
Zer*_*yth 11
这是因为两件事的结合.
首先,您尝试在看似不可为空的字段上使用0 Enum值.在这种情况下,0值保留为null.从formflow文档页面:
任何数据类型都可以为空,您可以使用它来模拟该字段没有值.如果表单字段基于不可为空的枚举属性,则枚举中的值0表示null(即,表示该字段没有值),并且应该在1处开始枚举值.FormFlow忽略所有其他财产类型和方法.
第二部分是因为您在"条款"属性中使用了1,2,3等数值[Terms("1", "One")] ,因此默认情况下,formflow会尝试将这些值与正确的枚举对齐.所以我认为正在发生的是,它让你选择"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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |