如何解决使用 ContentService 更新嵌套内容中的嵌套内容
我在嵌套内容列表 (meetingDatesAvailable) 中有一个嵌套内容列表 (meetingItemDayTimes)。
我想将每个时间项上的复选框设置为 true。但我终其一生都无法让它发挥作用。
结构如下:
var mainpage = contentService.GetById(1057);
var dateItems = Umbraco.Content(parentNode).Value<IEnumerable<IPublishedElement>>("meetingDatesAvailable");
var ncItems = new JArray();
var ncDateItems = new JArray();
var ncTimeItems = new JArray();
if (dateItems != null && dateItems.Any())
{
foreach (var dateItem in dateItems)
{
var ncDateItem = new JObject();
ncDateItem.Add("key",dateItem.Key.ToString());
ncDateItem.Add("ncContentTypeAlias",dateItem.ContentType.Alias);
ncDateItem.Add("meetingItemDay",dateItem.Value<string>("meetingItemDay",fallback: Fallback.ToDefaultValue,defaultValue: null));
var times = dateItem.Value<IEnumerable<IPublishedElement>>("meetingItemDayTimes");
foreach (var time in times)
{
var ncTimeItem = new JObject();
if (time.Key.ToString() == itemKey)
{
ncTimeItem.Add("meetingdateTimeItemUnavailable",true);
}
else
{
ncTimeItem.Add("meetingdateTimeItemUnavailable",time.Value<bool>("meetingdateTimeItemUnavailable",defaultValue: false));
}
ncTimeItem.Add("key",Guid.NewGuid().ToString());
ncTimeItem.Add("ncContentTypeAlias",time.ContentType.Alias);
ncTimeItem.Add("meetingdateTimeItem",time.Value<string>("meetingdateTimeItem",defaultValue: null));
ncTimeItems.Add(ncTimeItem);
}
ncDateItems.Add(ncDateItem);
}
ncItems.Add(ncDateItems);
var ncItemString = Newtonsoft.Json.JsonConvert.SerializeObject(ncItems);
mainpage.SetValue("meetingDatesAvailable",ncItemString);
contentService.SaveAndPublish(mainpage);
return new { saved = ncItemString };
}
我真的不确定如何正确构建列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。