很抱歉打扰了这个,但我已经争吵了一段时间,我找不到答案。 我在一个WebForm项目中有一个WebApi,它运行得很好。我们将EntityFramework从4.0更新到6.1,WebApi仅适用于DTO对象,但如果我们尝试返回实体列表,它将返回Json记录,如下所示:
[{"$id":"1"},{"$id":"2"},{"$id":"3"},{"$id":"4"}]
哪个是要返回的正确记录数,但它们是空的,没有值对。 模型中的所有实体都用以下内容进行修饰:
[Serializable()]
[DataContract()]
控制器是:
// GET api/<controller>/5
public IEnumerable<uv_Quotation_QuotationList> Get(Guid id)
{
var quotationList = _db.uv_Quotation_QuotationList.Where(q => q.EventId == id).ToList();
if (quotationList == null)
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
return quotationList;
}
Global.asax.cs在Application_Start中包含此代码:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
我希望有人可以将我重定向到正确的解决方案。
谢谢!!