上一篇: 显示 Markdown 内容
现在,我们知道如何呈现基本 Markdown 内容,让我们尝试利用 自适应卡片的强大功能来显示更详细的内容。 这对于创建表单或显示更复杂的内容非常有用。
使用窗体
命令面板支持自适应卡片,这是创建丰富交互式内容的方法。 这对于创建表单或显示更复杂的内容非常有用。
可以使用 IFormContent 接口在命令面板中创建卡片(请参阅用于工具包实现的 FormContent )。 这允许你提供自适应卡片 JSON,命令面板将为你呈现它。 用户提交表单后,Command Palette 会调用你的表单的 SubmitForm 方法,传递表单中的 JSON 数据和输入内容。
可以使用自适应卡方案设计器来创建有效负载。 可以在那设计您的卡片,然后将 JSON 数据负载复制到扩展程序中。
有关使用窗体和内容页面的完整示例,请查看 SamplePagesExtension/Pages/SampleContentPage.cs
。 需要注意的一些简短事项:
- 将表单的 TemplateJson 属性设置为自适应卡片的 JSON 有效负载。 (这是自适应卡片设计器中的“卡片有效负载编辑器”值)
- 将 FormContent 的 DataJson 属性设置为要用于填写卡片模板的数据。 (这是自适应卡片设计器中的“示例数据编辑器”值)。 这是可选的,但可以使制作卡片更容易。
- 实现 SubmitForm 方法来处理表单提交。 当用户提交表单时,将调用此方法,并将传递表单的 JSON 有效负载。
public override CommandResult SubmitForm(string payload)
{
var formInput = JsonNode.Parse(payload)?.AsObject();
if (formInput == null)
{
return CommandResult.GoHome();
}
// retrieve the value of the input field with the id "name"
var name = formInput["name"]?.AsString();
// do something with the data
// and eventually
return CommandResult.GoBack();
}
当然,你可以以任何方式组合和搭配 IContent。 例如,可以先对帖子正文使用块级 markdown,并在旁边放置一个用于回复帖子的 FormContent。