我在 JSON 中公开 WCF REST 服务并尝试从 jQuery 中使用它时遇到了一些问题。
我采用的第一个也是理想的方法与此非常相似。但是我遇到了一个问题,即返回带有 IsReference=true 注释的 JSON 是不行的,尽管如果我返回 XML 就可以了。
第二种方法是返回 XML 并在 jQuery 中使用它。但由于 jQuery 喜欢 JSON,我不喜欢这个选项。
另一个人可能在此解决方案之后尝试使用 JSON.Net,但在描述中作者说不建议将其用于生产。
我现在拥有的是第一种带有注释 IsReference=false 的方法,我认为这有点危险,为了解决循环引用,我手动删除了这些循环,例如:
var queryResult =
from a in DbContext.Programs.Include(x => x.Radios)
where ProgramsIds.Contains(a.Id)
select a;
foreach (Program p in queryResult)
{
p.Radio = null;
p.Messages = new List<Message>();
}
我不喜欢这种解决方案,但我不知道哪个解决方案不太糟糕。
我想很多人可能有这个问题,你采取了哪种解决方案?
谢谢!!
编辑1:
- 另一种解决方案是调用负责调用服务的控制器/操作。我也不喜欢这种方法,因为它是不必要的,因为浏览器可以自行访问服务。