我有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?
答案 0 :(得分:3)
您可以保留模型。更新操作的模型绑定器,以便它知道在哪里查找模型数据。
使用[FromQuery]
指定要应用的确切绑定源。
[HttpGet("cars")]
[Produces(typeof(List<Car>))]
public async Task<IActionResult> GetCars([FromQuery] CarParams parameters) {
//...
return Ok(data);
}
答案 1 :(得分:0)
只需使用VBox
label.prefWidthProperty().bind(root.widthProperty());
属性即可