Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework MS Bot框架:允许用户发布多个数据_Botframework - Fatal编程技术网

Botframework MS Bot框架:允许用户发布多个数据

Botframework MS Bot框架:允许用户发布多个数据,botframework,Botframework,我试图找到一种方法,让用户检索、编辑和发布表中的多个数据。像这样: 用户请求某些实体,例如Person MS bot返回一个包含此人所有属性的表(例如:年龄、姓名、地址等) 用户可以直接编辑表格中的数据,按send键并输入数据 存储在数据库中 有人支持吗?欢迎提供任何指导。您可以使用自适应卡为用户提供一份“表格”以供填写。并非所有通道都支持自适应卡,但支持的通道列表正在增加。有关更多信息,请参阅:和 以下是微软团队的一个例子: 该卡可以使用Adaptive Cards库创建,也可以从.js

我试图找到一种方法,让用户检索、编辑和发布表中的多个数据。像这样:

  • 用户请求某些实体,例如Person
  • MS bot返回一个包含此人所有属性的表(例如:年龄、姓名、地址等)
  • 用户可以直接编辑表格中的数据,按send键并输入数据 存储在数据库中

有人支持吗?欢迎提供任何指导。

您可以使用自适应卡为用户提供一份“表格”以供填写。并非所有通道都支持自适应卡,但支持的通道列表正在增加。有关更多信息,请参阅:和

以下是微软团队的一个例子:

该卡可以使用Adaptive Cards库创建,也可以从.json文件加载,如下所示:

string cardPath = Path.Combine(_hostingEnvironment.WebRootPath, "testcard.json");
string cardText = File.ReadAllText(cardPath);
var card = AdaptiveCards.AdaptiveCard.FromJson(cardText);

var reply = turnContext.Activity.CreateReply("card");
reply.Attachments.Add(new Attachment()
{
    Content = card.Card,
    ContentType = AdaptiveCards.AdaptiveCard.ContentType
});
await turnContext.SendActivityAsync(reply);
注意:当用户提交卡片时,activity.Value将包含一个.json值字符串:

示例Card.json:

{ “$schema”:”, “类型”:“AdaptiveCard”, “版本”:“1.0”, “正文”:[ { “类型”:“文本块”, “文本”:“告诉我们你自己……”, “重量”:“更大胆”, “大小”:“大” }, { “类型”:“文本块”, “文本”:“我们只需要更多的细节就可以为您预订终身旅行的机票!”, “isSubtle”:没错, “包装”:正确 }, { “类型”:“文本块”, “文本”:“别担心,我们永远不会分享或出售您的信息。”, “isSubtle”:没错, “包装”:正确, “大小”:“小” }, { “类型”:“文本块”, “文本”:“您的姓名”, “包装”:正确 }, { “类型”:“Input.Text”, “id”:“firstlast”, “占位符”:“最后,第一”, “样式”:“文本”, “分离”:“无” }, { “类型”:“文本块”, “文本”:“您的电子邮件”, “包装”:正确 }, { “类型”:“Input.Text”, “id”:“电子邮件”, “占位符”:”youremail@example.com", “风格”:“电子邮件”, “分离”:“无” }, { “类型”:“文本块”, “文本”:“电话号码” }, { “类型”:“Input.Text”, “id”:“电话”, “占位符”:“xxx.xxx.xxxx”, “风格”:“电话” } ], “行动”:[ { “类型”:“操作.提交”, “标题”:“发送”, “数据”:{“personalInfo”:“”} } ]
}

OK这是用户输入数据的好方法。然而,我想要的是相反的方式——我想要向用户呈现表格中的数据。您的要求之一是:“用户可以直接编辑表格中的数据,按send键并将数据存储在DB中”。您可以更改本例中的字段,并在表格中重新排列这些字段,其中这些字段的值预先填充了现有数据。