【问题标题】:client side validation in adaptive cards templating in c#c# 自适应卡片模板中的客户端验证
【发布时间】:2021-01-31 22:56:39
【问题描述】:

输入类型等基本验证不适用于模拟器或网络聊天。我在 bot 框架和自适应卡 v1.2 模板中使用 .net 核心。 isRequired 和 errorMessage 等验证在自适应卡片 v1.3 中可用,但在网络聊天中不支持。如何在自适应卡片中获得客户端验证?

【问题讨论】:

标签: json botframework chatbot adaptive-cards web-chat


【解决方案1】:

您可以使用一些技巧来让客户端验证在网络聊天中工作,如以下答案所示:How do I make Input text a required field in adaptive card version 1.2 for webchat

在查看 1.2.6 版的源代码时,我发现了一些 可能只是用于测试的秘密必需输入代码 目的,但实际上确实在网络聊天中起作用。那个原型模式看起来 像这样:

{
  "type": "Input.Text",
  "id": "firstName",
  "placeholder": "First Name",
  "validation": {
    "necessity": "Required",
    "errorMessage": "First Name is required"
  }
}

如果这对你有用,那就太好了,但如果你想要更多的控制权,或者如果 您碰巧使用的是更早版本的自适应卡片 你需要这个答案的其余部分。

当您谈论将输入字段设置为“必需”时,您似乎 当单击提交操作和字段时想要这两种行为 为空:

  1. 您希望不处理提交操作
  2. 您希望显示错误消息

网络聊天为其创建的每个自适应卡片指定一个操作处理程序 并且没有简单的方法可以覆盖它,所以对于行为#1,你最好 选项是让您的机器人检查传入的输入和短路 如果缺少所需的输入,它的逻辑。

对于行为 #2,您还可以通过让 机器人将消息发送回网络聊天,让用户知道哪个 自适应卡中缺少输入。或者,您可以 发送一张新卡片,每个输入字段旁边都有一个额外的文本块 第一张卡片中没有填充。

如果您真的想在网络聊天端切换这些文本块 那么实际上可能有一种方法可以做到这一点。即使你不能 覆盖网络聊天的提交动作行为,你可以添加到 通过为每个操作提供 onExecute 处理程序来行为。你会 必须阅读此答案以了解如何申请特殊 网络聊天中的自适应卡片功能: BotFramework-WebChat - Adaptive Card

【讨论】:

    猜你喜欢
    • 2023-02-03
    • 1970-01-01
    • 2021-12-05
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多