我正在向 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;
}
}
它们被添加到元素中,如下所示:
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);
谢谢
最佳答案
尝试以下操作,
a.公开属性(property)。
public int ID { get; set; }
b.返回值如下所示,
return Request.CreateResponse(HttpStatusCode.OK, lineElementList);
c.确保该方法具有 HttpGet 属性。
[HttpGet]
public HttpResponseMessage Methodname()
{
关于jquery - ASP.Net WebAPI 返回列表中的空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28953090/