Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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# 如何使用MicrosoftBot框架在瀑布模型中实现下拉列表_C# - Fatal编程技术网

C# 如何使用MicrosoftBot框架在瀑布模型中实现下拉列表

C# 如何使用MicrosoftBot框架在瀑布模型中实现下拉列表,c#,C#,我正在尝试使用对话在瀑布模型中实现下拉。第一步是提示用户输入姓名,然后要求用户输入年龄,然后输入用户需要旅行的城市。用户必须从下拉列表中选择城市,我想将信息转发到下一步。 我选择目的地的代码如下: private async Task<DialogTurnResult> DestinationStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) {

我正在尝试使用对话在瀑布模型中实现下拉。第一步是提示用户输入姓名,然后要求用户输入年龄,然后输入用户需要旅行的城市。用户必须从下拉列表中选择城市,我想将信息转发到下一步。 我选择目的地的代码如下:

private async Task<DialogTurnResult> DestinationStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            var message = MessageFactory.Text("Enter your destination city");
            var bookingDetails = (BookingDetails)stepContext.Options;
            bookingDetails.age = (int)stepContext.Result;
            var pmtOptions = new PromptOptions();
            if (bookingDetails.Destination == null)
            {
                var card = new AdaptiveCard();
                card.Body = new List<AdaptiveElement>();
                var choices = new List<AdaptiveChoice>()
             {
                 new AdaptiveChoice()
                 {
                     Title = "Pune",
                     Value = "Pune",
                 },
                 new AdaptiveChoice()
                 {
                     Title = "Mumbai",
                     Value = "Mumbai",
                 },
                 new AdaptiveChoice()
                 {
                     Title = "Hyderabad",
                     Value = "Hyderabad",
                 },
                 new AdaptiveChoice()
                 {
                     Title = "Bengaluru",
                     Value = "Bengaluru",
                 },
             };
                var choiceSet = new AdaptiveChoiceSetInput()
                {
                    IsMultiSelect = false,
                    Choices = choices,
                    Style = AdaptiveChoiceInputStyle.Compact,
                    Value = "1",
                    Id = "Destination city",
                };
                card.Body.Add(choiceSet);

                message.Attachments.Add(new Attachment() { Content = card, ContentType = "application/vnd.microsoft.card.adaptive" });
                var createTaskAndElement = new List<AdaptiveElement>
                {
                    new AdaptiveColumnSet
                    {
                        Id="btnCreate",
                        Columns=new List<AdaptiveColumn>
                        {
                            new AdaptiveColumn
                            {
                                Items=new List<AdaptiveElement>
                                {
                                    new AdaptiveActionSet
                                    {
                                        Actions=new List<AdaptiveAction>
                                        {
                                            new AdaptiveSubmitAction
                                            {
                                                Title="Select"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                };
                card.Body.Add(new AdaptiveContainer
                {
                    Id = "Create_Task_Container",
                    Style = AdaptiveContainerStyle.Default,
                    Spacing = AdaptiveSpacing.Default,
                    Bleed = false,
                    IsVisible = false,
                    VerticalContentAlignment = AdaptiveVerticalContentAlignment.Top,
                    Items = createTaskAndElement
                });
                card.Actions.Add(new AdaptiveSubmitAction() { Title = "Select" });
                return await stepContext.PromptAsync(DlgChoice, new PromptOptions { Prompt = message },cancellationToken);
            }
            return await stepContext.NextAsync(bookingDetails.Destination, cancellationToken);
        }
private async Task destinationstepsync(waterwallstepcontext stepContext,CancellationToken CancellationToken)
{
var message=MessageFactory.Text(“输入目的地城市”);
var bookingDetails=(bookingDetails)stepContext.Options;
bookingDetails.age=(int)stepContext.Result;
var pmtOptions=newprompoptions();
if(bookingDetails.Destination==null)
{
var卡=新的自适应卡();
card.Body=新列表();
var choices=新列表()
{
新的自适应选择()
{
Title=“浦那”,
Value=“Pune”,
},
新的自适应选择()
{
Title=“孟买”,
Value=“孟买”,
},
新的自适应选择()
{
Title=“海德拉巴”,
Value=“海德拉巴”,
},
新的自适应选择()
{
Title=“班加鲁”,
Value=“Bengaluru”,
},
};
var choiceSet=new AdaptiveChoiceSetInput()
{
IsMultiSelect=false,
选择=选择,
样式=自适应选择输入样式。紧凑,
Value=“1”,
Id=“目的地城市”,
};
卡片.正文.添加(选择集);
message.Attachments.Add(新附件(){Content=card,ContentType=“application/vnd.microsoft.card.adaptive”});
var createTaskAndElement=新列表
{
新的自适应列集
{
Id=“btnCreate”,
列=新列表
{
新的自适应列
{
项目=新列表
{
新的自适应动作集
{
操作=新列表
{
新的自适应submition
{
Title=“选择”
}
}
}
}
}
}
}
};
卡片.正文.添加(新的自适应容器
{
Id=“创建任务容器”,
Style=AdaptiveContainerStyle.Default,
间距=自适应间距。默认值,
出血=假,
IsVisible=false,
VerticalContentAlignment=自适应VerticalContentAlignment.Top,
Items=createTaskAndElement
});
添加(新的AdaptiveSubmitation(){Title=“Select”});
返回wait wait stepContext.PromptAsync(DlgChoice,newpromptoptions{Prompt=message},cancellationToken);
}
return wait stepContext.NextAsync(bookingDetails.Destination,cancellationToken);
}
当我尝试执行时,我得到的错误如下: 引发异常:System.Private.CoreLib.dll中的“Newtonsoft.Json.JsonReaderException” 'dotnet.exe'(CoreCLR:clrhost):加载'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.22\System.Diagnostics.StackTrace.dll'。已跳过加载符号。模块已优化,并且调试器选项“仅我的代码”已启用。 'dotnet.exe'(CoreCLR:clrhost):加载了'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.22\System.Reflection.Metadata.dll'。已跳过加载符号。模块已优化,并且调试器选项“仅我的代码”已启用。 'dotnet.exe'(CoreCLR:clrhost):加载'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.22\System.IO.MemoryMappedFiles.dll'。已跳过加载符号。模块已优化,并且调试器选项“仅我的代码”已启用。 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:信息:执行的操作方法CoreBot4.Controllers.BotController.PostAsync(CoreBot4),返回3158.1642ms内的结果Microsoft.AspNetCore.Mvc.EmptyResult


请帮我解决这个问题。提前感谢

在RunAsync方法中抛出错误:wait Dialog.RunAsync(turnContext,ConversationState.CreateProperty(“DialogState”),CancelationToken)@JohnG在内部似乎是tunContext在进行序列化。该对话框有一个包含城市列表的下拉列表,如果使用文本提示而不是od下拉列表,则不会引发错误。