使用IHttpActionResult返回List或IEnumerable

时间:2017-11-08 08:00:05

标签: c# asp.net-web-api

我尝试使用IHttpActionResult方法返回某个对象的列表,使用return Ok(new object {});可以轻松返回该对象的单个实例。但是,添加预设的单个对象或列表时,结果为:

  

"' ObjectContent`1'类型无法序列化内容类型的响应主体' application / json;字符集= UTF-8'"

我检查了列表/对象的内容是否正确,并且返回此对象的单个实例作为新对象确实有效。有谁知道如何以这种方式或以其他方式返回列表或IEnumerable?

代码:

[HttpGet]
[Route("api/v1/GetArticles/{code}/{companycode}")]
public IHttpActionResult GetArticles(int code, string companycode)
{
    BusinessLogic.Database.DbEntity dc = new BusinessLogic.Database.DbEntity();
    try
    {
        if (companycode.Equals("null", StringComparison.InvariantCultureIgnoreCase))
        {
          List<BusinessLogic.Database.Item> items = ItemEntity.GetItems(code, null, dc);
          return Ok(items);
        }
        else
        {
            List<BusinessLogic.Database.Item> items = ItemEntity.GetItems(code, companycode, dc);
            return Ok(items);
        }
    }
    catch (Exception ex)
    {
        return BadRequest(ex.Message);
    }
}

工作单个实例:

BusinessLogic.Database.Item item = ListEntity.GetItem(code, null, dc);

//Does not work
//return Ok(item);

//Works
return Ok(new BusinessLogic.Database.Item {
  Name = item.Name,
  Code = item.Code
});

0 个答案:

没有答案