提示用户输入字符串 C# botframe work

Prompting a user for a string C# botframe work

我目前正忙于设计一个机器人,它接收一个项目名称和 returns 它的状态,但是我无法得到名称工作的提示。

目前这是我用来提示用户的方法

[LuisIntent("ProjectInfo")]
        public async Task projectInfo(IDialogContext context, LuisResult result, IAwaitable<string> Userresult)
        {
            await context.PostAsync($"Enter your project name");
            var Promt = await Userresult;
            string projectName = Promt.ToString().ToLower();
            if(projectName != null)
            {
                TestInfo MI = new TestInfo();
                if(MI.FindProject(projectName.ToString()) == 0)
                {
                    await context.PostAsync($"Project Found. What do you want to know ?");
                }
                else
                {
                    await context.PostAsync($"Project Not Found.");
                }
            }
            context.Wait(MessageReceived);
        } 

使用当前代码,我收到异常:ProjectInfo [文件类型 'text/plain']。

我试过使用提示对话框,但似乎不起作用。我的最终目标是循环并提示用户输入新项目名称,直到显示 "Project Found"。

我不确定我是否以正确的方式进行此操作,如果不正确,欢迎提出任何建议。

很遗憾,我还没有遇到你的版本,但我可以给你一个不同方法的例子。

通常我会提示输入类似这样的简单文本:

PromptDialog.Text(context, AfterPromptMethod, "Prompt text", attempts: 100);

A​​fterPromptMethod 的签名:

async Task AfterPromptMethod(IDialogContext context, IAwaitable<string> userInput)

有了这个,您可以在 AfterPromptMethod 中执行您的逻辑并循环回到 messageReceived 中的提示。