如何 return 来自 C# WebAPI 的多个值?
How to return multiple values from a C# WebAPI?
我有一个具有以下签名的 Web API 端点。
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return Ok({ firstList, secondList });
}
现在,我想return两个列表变量firstList、secondList。怎么做?
您可以使用 system.tuple 或创建一个新的 class 或结构,如 :
public class TheClass
{
public TheClass(List<string> f,List<string> l)
{
firstList = f;
secendList = l;
}
public List<string> firstList;
public List<string> secendList;
}
和
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return new TheClass(firstList, secondList);
}
但是这个 class 必须在客户端上才能接收和使用它
Return 匿名类型;您所缺少的只是代码中的 new
这个词:
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return Ok(new { firstList, secondList });
}
重命名属性:
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return Ok(new { propertyName1=firstList, propertyName2=secondList });
}
为什么不是另一个答案中提倡的元组?如果您使用 Tuple,您的 属性 名称将固定为 Tuple 属性的名称(您最终会得到 JSON,例如 { "Item1": [ ... ] ...
我有一个具有以下签名的 Web API 端点。
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return Ok({ firstList, secondList });
}
现在,我想return两个列表变量firstList、secondList。怎么做?
您可以使用 system.tuple 或创建一个新的 class 或结构,如 :
public class TheClass
{
public TheClass(List<string> f,List<string> l)
{
firstList = f;
secendList = l;
}
public List<string> firstList;
public List<string> secendList;
}
和
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return new TheClass(firstList, secondList);
}
但是这个 class 必须在客户端上才能接收和使用它
Return 匿名类型;您所缺少的只是代码中的 new
这个词:
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return Ok(new { firstList, secondList });
}
重命名属性:
[HttpGet]
[Route("api/some-endpoint")]
public IHttpActionResult getAll()
{
...
...
return Ok(new { propertyName1=firstList, propertyName2=secondList });
}
为什么不是另一个答案中提倡的元组?如果您使用 Tuple,您的 属性 名称将固定为 Tuple 属性的名称(您最终会得到 JSON,例如 { "Item1": [ ... ] ...