我创建了对象并添加了一些属性:
dynamic oReturn = new ExpandoObject();
oReturn.Name = name;
oReturn.Editing = editing;
oReturn.Img = img;
...
return oReturn;
但是当我将对象返回到我的前端时,我有三个对象,每个对象都有一个键和一个值,而不是一个具有所有属性的对象。
这是我在控制台中的输出:
m.d[0];
Object {Key: "Name", Value: "Test"}
m.d[1];
Object {Key: "Editing", Value: "177f734c-2a69-4b81-a14c-164ab9ff6704"}
m.d[2];
Object {Key: "Img", Value: ""}
如何只返回一个具有所有三个属性的对象?
答案 0 :(得分:1)
使用带有JsonConvert类的Newtonsoft
库。然后,您可以在返回之前使用它来序列化对象。
dynamic oReturn = new ExpandoObject();
oReturn.Name = name;
oReturn.Editing = editing;
oReturn.Img = img;
var json = JsonConvert.SerializeObject(oReturn );
return json;
请注意,如果您正在使用ASP.NET MVC,那么您也可以使用Content-method
返回,如下所示:
dynamic oReturn = new ExpandoObject();
oReturn.Name = name;
oReturn.Editing = editing;
oReturn.Img = img;
var json = JsonConvert.SerializeObject(oReturn );
return Content(json, "application/json");
一旦收到你的前端,输出就会如下所示:
{"Name":"DataA","Editing":"DataB", "Img":"DataC"}
答案 1 :(得分:0)
这应该有效:
dynamic oReturn = new ExpandoObject();
oReturn.Data = new ExpandoObject();
oReturn.Data.Name = name;
oReturn.Data.Editing = editing;
oReturn.Data.Img = img;
...
return oReturn;
比这样的事情应该做的伎俩
return new {Name= name, Editing = editing, Img = img};