首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Botbuilder,botframework

Botbuilder,botframework
EN

Stack Overflow用户
提问于 2017-08-11 18:04:40
回答 2查看 38关注 0票数 1

嗨,我有一个例子,这个表格。

代码语言:javascript
复制
[Serializable]
public enum PassportFormType
{
    someEnum1,
    someEnum2,
    someEnum3,
}

[Serializable]
public class PassportForm
{
    [Prompt("Question text {||}")]
    public PassportFormType? Situace { get; set; }

    [Prompt("Question text {||}")]
    public int Count{ get; set; }
}

我希望对我的bot中的每个枚举类型使用自定义验证。我知道我可以用到这样的东西

代码语言:javascript
复制
 .Field(nameof(Toppings),
        validate: async (state, value) =>
        {
           .
           .
           .
            return result;
        })

但这不是我的解决方案,因为我需要为每个表单一次又一次地使用它。

如何对每个枚举类型应用自定义验证?

EN

回答 2

Stack Overflow用户

发布于 2017-08-12 03:28:23

您还可以提供一个方法,而不是lambda:

代码语言:javascript
复制
async Task<ValidateResult> ValidateEnum(PassportForm state, object value)
{
    var result = new ValidateResult();
    result.IsValid = true;
    result.Value = value;

    //logic ...

    return result;
}

并像这样使用它:

代码语言:javascript
复制
.Field(nameof(PassportForm.Situace), validate: ValidateEnum)
票数 0
EN

Stack Overflow用户

发布于 2017-08-13 16:25:05

你的答案是正确的。但是我的问题是不正确的。

我不能使用验证,因为我想要将输入文本解析为值。而是在全球范围内申请每一个枚举。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45632471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档