我正在尝试直接从Controller API / Messages中获取上下文以提示对话框
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
PromptDialog.Text(context, getText, "GetText");
}
}
我怎样才能实现这个目标?
答案 0 :(得分:0)
据我所知,没有任何正确的直接方法可以做到这一点。但是,你可以使用 以下代码具有您想要的相同功能(我希望这会有所帮助):
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity, () => new RootDialog());
}
}
[Serializable]
public class RootDialog : IDialog<string>
{
public async Task StartAsync(IDialogContext context)
{
PromptDialog.Text(context, MessageReceived, "How are You?");
}
private async Task MessageReceived(IDialogContext context, IAwaitable<string> result)
{
var message = await result;
context.Done(message);
}
}
实际上,它是一个对话框,作为promptDialog的包装器。