簡體   English   中英

具有許多參數的ASP.Net Core Web API Controller操作

[英]ASP.Net Core Web API Controller action with many parameters

我有ASP.Net Core Web API Controller的方法,該方法基於查詢參數返回List<Car>

[HttpPost("cars")]
public async Task<List<Car>> GetCars([FromBody] CarParams par)
{
    //...
}

參數按記錄類型CarParams分組。 大約有20個參數:

public class CarParams
{
    public string EngineType { get; set; }
    public int WheelsCount { get; set; }
    /// ... 20 params
    public bool IsTruck { get; set; }
}

我需要將此方法從POST更改為GET,因為我想對此類請求使用服務器端緩存。

是否應該使用20個參數創建控制器的方法?

[HttpGet("cars")]
public async Task<List<Car>> GetCars(string engineType, 
                                      int wheelsCount, 
                                  /*...20 params?...*/
                                         bool isTruck)
{
    //...
}

如果是這樣的話:有沒有一種方法可以自動為客戶端應用生成如此復雜的URL?

您可以保留模型。 更新操作的模型綁定程序,以便它知道在哪里查找模型數據。

使用[FromQuery]指定要應用的確切綁定源。

[HttpGet("cars")]
[Produces(typeof(List<Car>))]
public async Task<IActionResult> GetCars([FromQuery] CarParams parameters) {

    //...

    return Ok(data);
}

ASP.NET Core中的參考模型綁定

只需使用[FromUrl]更改[FromBody]屬性

暫無
暫無

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

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