我需要在我的请求中添加许多自定义 header 。我可以使用这样的东西
public ActionResult Get([FromHeader, Required]string header1, [FromHeader]string header2, ... , [FromHeader]string headerx)
{
...
...
}
我不确定在一种方法中使用这么多参数是否好。
我想用这样的东西
public class HeaderParameters
{
[Required]
public string Header1 { get; set; }
public string Header2 { get; set; }
...
public string Headerx { get; set; }
}
public ActionResult Get([FromHeader]HeaderParameters headerParameters)
{
...
...
}
但它不起作用。
如果我对 HeaderParameters 类的每个属性使用 [FromHeader] 属性,Swagger 就会表现得很奇怪。
Request example http://prntscr.com/p14kd7
{
"errors": {
"Device": [
"The Header1 field is required."
]
},
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "0HLPG9SNNJ1U2:00000001"
}
最佳答案
在 .Net Core 3.1 中的 ASP.NET Core 中有一种更简单的方法。就放[FromHeader]
到处都是,像这样:
[HttpPost("multipleHeaders")]
public IActionResult Post([FromHeader] ForecastHeaders forecastHeaders)
{
try
{
Console.WriteLine($"Got a forecast for city: {forecastHeaders.City}," +
$"temperature: {forecastHeaders.TemperatureC} and" +
$"description: {forecastHeaders.Description}!");
}
catch (Exception e)
{
Console.WriteLine(e);
return StatusCode(StatusCodes.Status500InternalServerError);
}
return new AcceptedResult();
}
和ForecastHeaders
看起来像这样:public class ForecastHeaders
{
[FromHeader]
public string City { get; set; }
[FromHeader]
public int TemperatureC { get; set; }
[FromHeader]
public string Description { get; set; }
[FromQuery]
public string Sorting { get; set; }
}
当您向 Postman 发送请求时:它就像一个魅力:
就放
[FromHeader]
到处。与 [FromQuery]
合作也是。
关于c# - 如何在 Asp.Net Core 2.2 中将 [FromHeader] 属性与自定义模型绑定(bind)一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57768912/