僵尸框架网络聊天频道无法呈现卡



我在创建使用AdaptiveShowCardAction的卡片时遇到困难。当我尝试创建一张简单的卡片时,它设法显示出来。

法典:

public override AdaptiveCard CherwellCard(UserProfile userProfile)
{
try
{
foreach (var service in CherwellCategories)
{
var serviceCard = new AdaptiveShowCardAction()
{
Title = service.Name,
Card = new AdaptiveCard()
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_category"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
}
},
Actions = new List<AdaptiveAction>()
{
}
}
};
foreach (var category in service.Categories)
{
var categoryCard = new AdaptiveShowCardAction()
{
Title = category.Name,
Card = new AdaptiveCard()
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_sub_category"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
}
},
Actions = new List<AdaptiveAction>()
{
}
}
};
foreach (var subCategory in category.Categories)
{
var subCategoryCard = new AdaptiveShowCardAction()
{
Title = subCategory.Name,
Card = new AdaptiveCard()
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_selection"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
}
},
Actions = new List<AdaptiveAction>()
{
}
}
};
var ContinueDataJson = "{ "Service" : "{0}", "Category" : "{1}", "SubCategory" : "{2}"}";
ContinueDataJson = ContinueDataJson.Replace("{0}", service.Name).Replace("{1}", category.Name).Replace("{2}", subCategory.Name);
var finalCard = new AdaptiveShowCardAction()
{
Title = TranslateHelper.GetText(userProfile.Locale, "ticket_details"),
Card = new AdaptiveCard()
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_services"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
},
new AdaptiveTextBlock()
{
Text = service.Name,
Weight = AdaptiveTextWeight.Lighter,
Size =  AdaptiveTextSize.Medium
},
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_category"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
},
new AdaptiveTextBlock()
{
Text = category.Name,
Weight = AdaptiveTextWeight.Lighter,
Size =  AdaptiveTextSize.Medium
},
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_sub_category"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
},
new AdaptiveTextBlock()
{
Text = subCategory.Name,
Weight = AdaptiveTextWeight.Lighter,
Size =  AdaptiveTextSize.Medium
}
},
Actions = new List<AdaptiveAction>()
{
new AdaptiveSubmitAction()
{
Title =  TranslateHelper.GetText(userProfile.Locale, "ticket_submit"),
DataJson = ContinueDataJson
}
}
}
};
subCategoryCard.Card.Actions.Add(finalCard);
categoryCard.Card.Actions.Add(subCategoryCard);
}
serviceCard.Card.Actions.Add(categoryCard);
}
serviceAction.Add(serviceCard);
}
AdaptiveCard card = new AdaptiveCard()
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock()
{
Text = TranslateHelper.GetText(userProfile.Locale, "ticket_services"),
Weight = AdaptiveTextWeight.Bolder,
Size =  AdaptiveTextSize.Medium
}
},
Actions = new List<AdaptiveAction>()
{
}
};
card.Actions.AddRange(serviceAction);
return card;
}
catch (Exception ex)
{
throw;
}
}

对于CherwellCategories列表 - 它包含 3 个级别,服务(8 个数据(- 类别 (20+( 和子类别(118 个数据(。我怀疑这是因为卡太大而无法处理。

当我单击按钮时,该卡不显示。它没有给出任何响应。有什么限制吗?由于我能够创建一张简单的卡片并显示它,请继续对话的流程。

JsonValue:

[
{
"name": "Acquire and Develop Talent",
"categories": [
{
"name": "Manage Learning and Development",
"categories": [
{
"name": "Deliver Training"
},
{
"name": "Develop Learning Programmes"
},
{
"name": "Evaluate Training"
},
{
"name": "Manage course cancellation requests"
},
{
"name": "Manage Employee pre-book requests"
},
{
"name": "Register interest for a course"
},
{
"name": "Set-up Learning"
}
]
},
{
"name": "Manage Performance",
"categories": [
{
"name": "Conduct Annual Review"
},
{
"name": "Conduct Mid-Year Review"
},
{
"name": "Create Team Objectives & Individual Performance Plan"
},
{
"name": "Design Performance and Development Processes and Tools"
},
{
"name": "Manage and Assign Competencies"
}
]
},
{
"name": "Manage Recruitment and New Hires",
"categories": [
{
"name": "Create Job Requisition"
},
{
"name": "Develop Recruitment Processes and Tools"
},
{
"name": "Document Employee Data"
},
{
"name": "Edit / Cancel Job Requisition"
},
{
"name": "Manage Job Offer - Grade 33 and below"
},
{
"name": "Manage Job Offer - Grade 34 and above"
},
{
"name": "Manage Offer Withdrawal"
},
{
"name": "Manage Referral Process"
},
{
"name": "Post Job / Position"
},
{
"name": "Prepare for New Hire"
},
{
"name": "Prepare Rejection"
},
{
"name": "Screen Candidates"
},
{
"name": "Select Candidate"
},
{
"name": "Source Candidate"
}
]
},
{
"name": "Manage Talent",
"categories": [
{
"name": "Conduct Talent Review & Identify Talent"
},
{
"name": "Develop & Maintain Succession Plan"
},
{
"name": "Develop Talent Processes & Tools"
}
]
}
]
},
{
"name": "Ad-hoc Request",
"categories": [
{
"name": "Admin request",
"categories": [
{
"name": "Perform specified Admin action"
}
]
},
{
"name": "Reporting",
"categories": [
{
"name": "Create Report"
},
{
"name": "Run Report"
}
]
}
]
},
{
"name": "HR Systems",
"categories": [
{
"name": "Cherwell",
"categories": [
{
"name": "Defect"
},
{
"name": "New Requirement"
},
{
"name": "Question"
}
]
},
{
"name": "IVR",
"categories": [
{
"name": "Defect"
},
{
"name": "New Requirement"
},
{
"name": "Question"
}
]
},
{
"name": "Kenexa",
"categories": [
{
"name": "Create new users"
},
{
"name": "Jobs Specifications Updates"
},
{
"name": "Manage assessments"
},
{
"name": "Manage Reports"
},
{
"name": "Requisitions Incidents"
}
]
},
{
"name": "Opentext",
"categories": [
{
"name": "Defect"
},
{
"name": "New Requirement"
},
{
"name": "Question"
}
]
},
{
"name": "SharePoint",
"categories": [
{
"name": "Access"
},
{
"name": "Defect"
}
]
},
{
"name": "Success Factors",
"categories": [
{
"name": "Defect"
},
{
"name": "New Requirement"
},
{
"name": "Question"
}
]
},
{
"name": "System integration",
"categories": [
{
"name": "Defect"
},
{
"name": "New Requirement"
},
{
"name": "Question"
}
]
},
{
"name": "Talent Portal",
"categories": [
{
"name": "Log in issues"
},
{
"name": "Manage Reports"
},
{
"name": "Manage Talent Xchange Communities"
}
]
}
]
},
{
"name": "Manage Employee Administration",
"categories": [
{
"name": "Manage Absence and Health",
"categories": [
{
"name": "Administer Leave of Absence"
},
{
"name": "Administer Occupational Health"
},
{
"name": "Manage Return to Work"
},
{
"name": "Record and Manage Long Term Sickness Absence"
},
{
"name": "Record and Manage Short Term Sickness Absence"
}
]
},
{
"name": "Manage Employee Changes",
"categories": [
{
"name": "Administer Mass Data Changes"
},
{
"name": "Change Employee Personal Data"
},
{
"name": "Change Employee Work Data"
},
{
"name": "Manage Personnel Files"
},
{
"name": "Manage Promotion, Demotion & Lateral Moves"
}
]
},
{
"name": "Manage Exit",
"categories": [
{
"name": "Conduct Exit Interviews & Communications"
},
{
"name": "Manage Involuntary Exit"
},
{
"name": "Manage Redundancy"
},
{
"name": "Manage Voluntary Exit"
}
]
},
{
"name": "Manage Global Mobility",
"categories": [
{
"name": "End or Extend Assignment"
},
{
"name": "Initiate Assignment"
},
{
"name": "Initiate Assignment - What If"
},
{
"name": "Initiate Assignment Non-Aurora"
},
{
"name": "Manage APRO Data Errors"
},
{
"name": "Manage APRO Testing"
},
{
"name": "Manage APRO Updates and Uploads"
},
{
"name": "Manage APRO User Accounts"
},
{
"name": "Manage Cost of Living Review"
},
{
"name": "Manage Home Leave Review"
},
{
"name": "Manage Immigration"
},
{
"name": "Manage Processes on Assignment"
},
{
"name": "Manage Relocation"
}
]
},
{
"name": "Manage Organisation & Positions",
"categories": [
{
"name": "Close / Freeze position"
},
{
"name": "Create / Maintain Organisation Design & Authorities"
},
{
"name": "Create Position"
},
{
"name": "Modify Position"
}
]
},
{
"name": "Manage Payroll",
"categories": [
{
"name": "Collect Payroll Data"
},
{
"name": "Manage Exception / Escalation Payment Process"
},
{
"name": "Manage Payroll Reporting"
},
{
"name": "Manage Third Party Payroll"
},
{
"name": "Payroll and Taxation Set Up and Ongoing Administration - International Assignment Payroll"
},
{
"name": "Payroll and Taxation Set up and Ongoing Administration - Shadow"
},
{
"name": "Payroll Processing"
}
]
}
]
},
{
"name": "Manage Organisational Development",
"categories": [
{
"name": "Manage Employee & Labour Relations",
"categories": [
{
"name": "Manage Appeals"
},
{
"name": "Manage Conduct Cases"
},
{
"name": "Manage Grievances"
},
{
"name": "Manage Unions / Work Councils"
}
]
},
{
"name": "Manage Organisational Strategy",
"categories": [
{
"name": "Develop Engagement Surveys"
},
{
"name": "Manage Diversity"
}
]
}
]
},
{
"name": "Manage People Strategy & Analytics",
"categories": [
{
"name": "Manage Analytics and Insight",
"categories": [
{
"name": "Manage Reporting"
}
]
},
{
"name": "Plan & Manage HR and Manage Strategic HR",
"categories": [
{
"name": "Manage Reporting"
}
]
}
]
},
{
"name": "Manage Reward and Benefits",
"categories": [
{
"name": "Manage Benefits",
"categories": [
{
"name": "Manage Benefit Enrolment and Amendments"
},
{
"name": "Manage Pensions Administration"
},
{
"name": "Process Benefit Costs"
}
]
},
{
"name": "Manage Compensation, Incentives & Recognition",
"categories": [
{
"name": "Analyse and Evaluate Jobs / Roles"
},
{
"name": "Design Reward Plans"
},
{
"name": "External Reward Benchmarking"
},
{
"name": "Manage Bonus Payments"
},
{
"name": "Manage Compensation Review"
},
{
"name": "Manage Off-Cycle Reward Changes"
},
{
"name": "Manage One-off payments & Allowances"
},
{
"name": "Manage Reward Communications"
},
{
"name": "Manage Share Plans"
}
]
}
]
}
] 

我删除了 3 个服务中的 7 个(以及属于已删除的 3 个服务的后续类别和子类别(,它也可以工作。如果我只删除 2,那么它就无法再渲染了。

我使用与您提供的 json 值相同的数据进行测试,我可以在网上聊天中重现相同的问题。我检查了包含生成的自适应卡片作为附件的活动的大小,大约为430kb

正如您提到的,如果我从服务列表中删除某些项目(服务(,该卡可以按预期呈现并工作。似乎某些活动限制或自适应卡片导致了此问题,目前我们找不到有关类似问题的任何文档解释,如果可能,您可以创建一个问题来报告它。

此外,在一个自适应卡片中显示许多服务、类别和sub_categories供用户选择,作为一种解决方法,可以尝试在许多自适应卡片中将它们分开,然后可以根据用户的选择动态显示子自适应卡片,并在以前的自适应卡片中收集回发值。

最新更新