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

.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 没有定义属性

    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题