簡體   English   中英

如何從 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 });
 }

現在,我想返回兩個列表變量firstList、secondList。 怎么做?

返回匿名類型; 您所缺少的只是代碼中的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": [... ]...

您可以使用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 必須在客戶端才能接收和使用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM