![](/img/trans.png)
[英]Mix web api action and non api action same controller asp.net core
[英]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);
}
只需使用[FromUrl]
更改[FromBody]
屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.