将对象添加到 Umbraco 控制器中的列表
Add object to list in Umbraco controller
我是强类型语言的新手,我正在使用 Umbraco 控制器输出一些 JSON 和日期列表。
"meetingTimes": [10:30, 11:30]
效果很好。现在我想输出一个包含唯一键的时间的 extry 字段
所以应该是这样的
meetingTimes: [{ time: "10:30", key: "abcd-1234-efgh-5678" }, { time: "11:30", key: "defg-1234-sktg-5678" }]
但我不知道该怎么做。
我当前处理此问题的代码部分是:
try {
IPublishedContent content = Umbraco.Content(Guid.Parse("ff3e93f6-b34f-4664-a08b-d2eae2a0adbd"));
var meetingDatesAvailabled = content.Value<IEnumerable<IPublishedElement>>("meetingDatesAvailable");
var items = new List<object>();
foreach(var meetingDate in meetingDatesAvailabled)
{
if (meetingDate.Value("meetingItemDay").ToString().Substring(0, 8) == theDate) {
var times = meetingDate.Value<IEnumerable<IPublishedElement>>("meetingItemDayTimes");
foreach (var time in times)
{
items.Add(time.Value("meetingdateTimeItem").ToString());
}
}
}
return new { dateChosen = theDate, meetingTimes = items };
}
最初,我们必须创建一个抽象会议时间的class:
public class MeetingTime
{
public string Time { get; }
public Guid Key { get; }
public MeetingTime(string time, Guid key)
{
Time = time;
Key = key;
}
}
然后我们将创建一个 MeetingItem
的空列表,而不是创建一个 object
、var items = new List<object>();
.
的空列表
var items = new List<MeetingItem>();
然后在你的内心foreach
:
foreach (var time in times)
{
items.Add(new MeetingTime(time.Value("meetingdateTimeItem").ToString(),
Guid.NewGuid())
);
}
注意:我不知道您序列化 objects 的方式(例如 https://www.newtonsoft.com),但很可能您必须同时装饰属性 Time
和 Key
具有在序列化期间使用专有名称的属性。如果您不这样做,那么它将使用默认名称 Time
和 Key
。我这样说,是因为我在你分享的 json 中注意到你想成为 time
和 key
。
我是强类型语言的新手,我正在使用 Umbraco 控制器输出一些 JSON 和日期列表。
"meetingTimes": [10:30, 11:30]
效果很好。现在我想输出一个包含唯一键的时间的 extry 字段
所以应该是这样的
meetingTimes: [{ time: "10:30", key: "abcd-1234-efgh-5678" }, { time: "11:30", key: "defg-1234-sktg-5678" }]
但我不知道该怎么做。
我当前处理此问题的代码部分是:
try {
IPublishedContent content = Umbraco.Content(Guid.Parse("ff3e93f6-b34f-4664-a08b-d2eae2a0adbd"));
var meetingDatesAvailabled = content.Value<IEnumerable<IPublishedElement>>("meetingDatesAvailable");
var items = new List<object>();
foreach(var meetingDate in meetingDatesAvailabled)
{
if (meetingDate.Value("meetingItemDay").ToString().Substring(0, 8) == theDate) {
var times = meetingDate.Value<IEnumerable<IPublishedElement>>("meetingItemDayTimes");
foreach (var time in times)
{
items.Add(time.Value("meetingdateTimeItem").ToString());
}
}
}
return new { dateChosen = theDate, meetingTimes = items };
}
最初,我们必须创建一个抽象会议时间的class:
public class MeetingTime
{
public string Time { get; }
public Guid Key { get; }
public MeetingTime(string time, Guid key)
{
Time = time;
Key = key;
}
}
然后我们将创建一个 MeetingItem
的空列表,而不是创建一个 object
、var items = new List<object>();
.
var items = new List<MeetingItem>();
然后在你的内心foreach
:
foreach (var time in times)
{
items.Add(new MeetingTime(time.Value("meetingdateTimeItem").ToString(),
Guid.NewGuid())
);
}
注意:我不知道您序列化 objects 的方式(例如 https://www.newtonsoft.com),但很可能您必须同时装饰属性 Time
和 Key
具有在序列化期间使用专有名称的属性。如果您不这样做,那么它将使用默认名称 Time
和 Key
。我这样说,是因为我在你分享的 json 中注意到你想成为 time
和 key
。