ASP.Net WebAPI 返回列表中的空对象

Posted

技术标签:

【中文标题】ASP.Net WebAPI 返回列表中的空对象【英文标题】:ASP.Net WebAPI Returning Empty Objects In List 【发布时间】:2015-05-11 06:19:27 【问题描述】:

我正在向 WebAPI 发出 GET 请求并返回一个对象,如下所示: http://s12.postimg.org/leoykz3rh/debug1.png

但是,当我在客户端检索对象时,Elements 中的对象是空的,没有结构: http://s12.postimg.org/cie6h1d59/debug2.jpg

这里是Elements

中包含的对象的类定义
public class LineElement
    
        int ID  get; set; 
        int X  get; set; 
        int Y  get; set; 
        int W  get; set; 
        int H  get; set; 
        string Code  get; set; 
        string Color  get; set; 

        public LineElement(int pID, int? pX, int? pY, int? pW, int? pH, string pCode, string pColor)
        
            ID = pID;
            X = Convert.ToInt16(pX);
            Y = Convert.ToInt16(pY);
            W = Convert.ToInt16(pW);
            H = Convert.ToInt16(pH);
            Code = pCode;
            Color = pColor;
        
    

它们被添加到 Elements 中,如下所示:

var elemList = new List<LineElement>(); // list of LineElements to return
for (var i = 0; i < r.Count(); i++)
                
                    elemList.Add(new LineElement(r[i].ID, r[i].P_L, r[i].P_T, r[i].P_W, r[i].P_H, r[i].Code.ToString(), r[i].GetSColor()));
                

从 VS 调试器屏幕截图中可以看出,该对象在服务器端看起来很好。对序列化或反序列化期间可能发生的事情有什么想法吗?

另外,我已经通过使用 IHttpActionResult 将其传递回客户端来测试序列化,这给了我相同的结果。

return Ok(response);

谢谢

【问题讨论】:

我的建议对你有用吗? 是的 - 我不敢相信我错过了。感谢您的帮助。 【参考方案1】:

试试下面的,

一个。公开属性。

  public int ID  get; set; 

b.返回值如下图,

 return Request.CreateResponse(HttpStatusCode.OK, lineElementList);

c。确保方法中有 HttpGet 属性。

    [HttpGet]
    public HttpResponseMessage Methodname()
    

【讨论】:

【参考方案2】:

我收到此错误是因为我缺少 get;放; 在属性中。

改变:

公共整数 ID;

收件人:

公共 int ID 获取;放;

【讨论】:

以上是关于ASP.Net WebAPI 返回列表中的空对象的主要内容,如果未能解决你的问题,请参考以下文章

对“asp.net core WebApi”的 ajax 调用返回一个奇怪/奇怪的值

ASP.NET MVC 向 JS 发送类对象的问题 - JS 数组中的空对象

在 asp.net WebAPI 中返回数组对象

ASP.NET WebApi的返回值序列化的问题

如何处理 ASP.NET SqlDataSource 中的空 CONTAINS() 查询参数?

2017-5-29学习记录——WebApi