提示用户输入字符串 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);
AfterPromptMethod 的签名:
async Task AfterPromptMethod(IDialogContext context, IAwaitable<string> userInput)
有了这个,您可以在 AfterPromptMethod 中执行您的逻辑并循环回到 messageReceived 中的提示。
我目前正忙于设计一个机器人,它接收一个项目名称和 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);
AfterPromptMethod 的签名:
async Task AfterPromptMethod(IDialogContext context, IAwaitable<string> userInput)
有了这个,您可以在 AfterPromptMethod 中执行您的逻辑并循环回到 messageReceived 中的提示。