在创建使用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级,即Service(8数据)-Category(20+)和SubCategory(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"
}
]
}
]
}
]
答案 0 :(得分:1)
我从7个服务中删除了3个(连同属于该3个服务的后续类别和子类别),它也起作用。如果我仅删除2,则无法再渲染。
我使用与您提供的json值相同的数据进行测试,因此可以在网络聊天中重现相同的问题。然后,我检查了包含生成的自适应卡作为附件的活动的大小,大约为 430kb 。
正如您提到的,如果我从服务列表中删除了某些项目(服务),则可以渲染卡并按预期工作。活动或自适应卡的某些限制似乎导致了此问题,目前我们找不到有关类似问题的任何文档说明,如有可能,您可以create an issue进行举报。
此外,您还可以在一张自适应卡中显示许多服务,类别和子类别供用户选择,作为一种解决方法,您可以尝试将它们分成许多自适应卡,然后可以动态显示基于子自适应卡的子代根据用户的选择并回发您在以前的自适应卡中收集的值。