如何解决2sxc 自定义 API 返回实体列表
我有以下 API 部分:
[HttpPost]
public TriggerDetails returnTriggerInfo([FromBody] string CatId)
{
var returnTriggerDetails = new TriggerDetails();
var CatList = AsList(App.Data["Categories"]);
var myCat = CatList.Where(a => a.EntityId.ToString() == CatId.ToString());
if (myCat.Count() == 1)
{
var thisCat = myCat.First();
returnTriggerDetails.CatName = thisCat.CatName;
returnTriggerDetails.Level = thisCat.Level;
returnTriggerDetails.Registry = thisCat.Registry;
returnTriggerDetails.Trigger = AsList(thisCat.Trigger); // Need help here. This is the field set up as entity
}
return returnTriggerDetails;
}
public class TriggerDetails {
public string CatName {get;set;}
public string Level {get;set;}
public string Registry {get;set;}
public IEnumerable<dynamic> Trigger {get;set;} // Need help here too
}
需要返回相同的字段而不指定原始实体的内容(来自链接实体的字段)。 我怎样才能投射这个以便返回“类别”中“触发器”字段的全部内容?
解决方法
基本上,您似乎希望将 thisCat.Trigger
的“整个实体”序列化 - 对吗?
注意:通常你可能更喜欢在 VisualQuery 中做这样的事情
仅供参考:实体并没有像您想象的那样很好地序列化,因为它们在内部是多语言的。
最简单的方法是使用我们的转换器
https://docs.2sxc.org/api/dot-net/ToSic.Sxc.Conversion.DataToDictionary.html
创建一个转换器对象,然后调用 converter.Convert(yourEntity)
,它应该会给你一个简单的对象,它可以在自动序列化中很好地工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。