漫步者4000 2021-06-25 17:55 采纳率: 100%
浏览 49
已采纳

.net core的web api中的Controller返回关联类时显示{}?

visual studio 2019 

.net Core 3.1

web api

 

输入如下代码

        [HttpGet("test")]
        public ActionResult TestGet() {
            var x = new SelectObject();
            x.Label = "test";
            x.Value = "123456";
 
            var y = new SelectObject2();
            y.name = "test2";
            y.obj = x;
 
            return Ok(x);
        }

可以正常返回 

{
  "value": "123456",
  "label": "test"
}

如果将代码返回的x对象改成y对象,就是有关联关系的对象,代码如下

        [HttpGet("test")]
        public ActionResult TestGet() {
            var x = new SelectObject();
            x.Label = "test";
            x.Value = "123456";
 
            var y = new SelectObject2();
            y.name = "test2";
            y.obj = x;
 
            return Ok(y);  // x改成了y
        }

则返回结果就变成了空对象

{}

 这是怎么回事,哪位大侠来解一下?

  • 写回答

1条回答 默认 最新

  • @microsoft 2021-06-26 11:51
    关注

    我猜测你的 SelectObject2 应该是这样定义的:

    public class SelectObject2
    {
        pubilc string name;
        public SelectObject1 obj;
    
        // others
    }

    而 SelectObject1 是这样定义的

    public class SelectObject1
    {
        public string Label{ get; set; }
        public string Value{ get; set; }
    
        // others
    }

    所以,为什么 return OK() 返回的是一个空对象的原因,应该是你的 SelectObject2 没有定义属性

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)