Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.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
C# 提示用户输入字符串C botframe work_C#_Botframework - Fatal编程技术网

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

C# 提示用户输入字符串C botframe work,c#,botframework,C#,Botframework,我目前正忙于设计一个机器人,它接收一个项目名称并返回其状态,但是我无法得到提示,让名称工作 目前这是我用来提示用户的方法 [LuisIntent("ProjectInfo")] public async Task projectInfo(IDialogContext context, LuisResult result, IAwaitable<string> Userresult) { await context.PostAsy

我目前正忙于设计一个机器人,它接收一个项目名称并返回其状态,但是我无法得到提示,让名称工作

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

[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'的文件]

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


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

不幸的是,我还没有看到你的版本,但我可以给你一个不同方法的例子

通常我会提示输入以下简单文本:

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

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

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

请提供messageReceived函数的代码。我刚刚发现了一个不同的例子,这正是我需要的,谢谢,但是,捕获的字符串是Wait:Call string for TestBot.SimpleLuisDialog.AfterPromptMethod.Rest have string TestProject-Test project是我键入的字符串。使用Wait获取原始字符串。var inputText=等待用户输入;你好,很抱歉再次打扰你。我试图让它返回到调用原始提示的任务中,如果找到项目名inst,您知道如何执行吗?我试过使用context.call/wait他们似乎不想响应2选项:context.WaitMessageReceived返回可能包含提示的输入函数。或者使用相同的PromptDialog.Text。。。。再次排队