【问题标题】:Json API isnt returning dataJson API 不返回数据
【发布时间】:2019-08-02 12:34:05
【问题描述】:

我正在尝试创建一个简单的 Web API。

我有数据进入控制器,但我无法在 JSON API 中返回它。我认为问题在于返回IEnumerable 字符串。

BLL:

public IEnumerable<DTO.Gettod> Gettods()
    {
        DAL.todDataController tdc = new DAL.todDataController();
        return tdc.GetToddMobiles();
    }

型号:

public class TodViewModel
{
    public IEnumerable<DTO.Gettod> ModelGetTod { get; set; }
}

控制器:

 public IEnumerable<string> Get()
 {
     BLL.todManager tm = new BLL.todManager();
     Models.TodViewModel tvm = new Models.TodViewModel();

     tvm.ModelGetTod = tm.Gettods().ToArray();
     return tvm as IEnumerable<string>;
 }

JSON 文件只返回一个 Null 但我期待一个数组。

【问题讨论】:

  • 能分享一下tvm.ModelGetTod是什么类型的吗?
  • 它是 Iemunbable 但已更改为 IList

标签: c# json model-view-controller


【解决方案1】:

正确的代码如下,在以下答案中注明:布鲁诺:

  public IHttpActionResult GetToddData()
            {
            BLL.todManager tm = new BLL.todManager();
            Models.TodViewModel tvm = new Models.TodViewModel();

            tvm.ModelGetTod = tm.Gettods().ToList();

            //HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, tvm.ModelGetTod as IEnumerable<string>);

            return Ok(tvm.ModelGetTod);
        }

【讨论】:

    【解决方案2】:

    尝试将您的控制器更改为以下内容:

    编辑:将接受的答案更改为对用户有用的答案

    public IHttpActionResult GetToddData () {
        BLL.todManager tm = new BLL.todManager ();
        Models.TodViewModel tvm = new Models.TodViewModel ();
    
        tvm.ModelGetTod = tm.Gettods ().ToList ();
    
        //HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, tvm.ModelGetTod as IEnumerable<string>);
    
        return Ok (tvm.ModelGetTod);
    }
    

    此外,调试并查看您是否在 tvm.ModelGetTod 属性中获得了预期值。

    【讨论】:

    • 您好布鲁诺,感谢您的回复。不幸的是,仍然得到 Null。这些值一直持续到控制器。不知道是什么阻止了它。
    • tvm.ModelGetTod 是否已填充?尝试从控制器方法返回类型 IActionResult 并返回 Ok(tvm.ModelGetTod as IEnumerable);
    • 虽然您的解决方案在其他应用程序中也有效。
    • tvm.ModelGetTod 已填充。
    • 嗨布鲁诺,我通过实施您的两个建议来解决它。我改了removed iEnumerable,把action改成了IHttpActionResult。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多