Используется фреймворк .Net Core 3.0, но тестировался в версии 2.2 и показал такое же поведение.
Я использую класс для автоматической привязки свойств запроса тела, и это работает очень хорошо, даже без атрибута [FromBody].
Теперь я добавил в этот класс новое свойство, которое будет соответствовать свойству из заголовка, и оно будет работать, если я использую его непосредственно в контроллере, например:
public IActionResult Test(TestRequest request, [FromHeader(Name = "Authorization")] string token)
Однако, когда я пытаюсь получить тот же результат, добавляя атрибут [FromHeader] в свойство класса, это не работает.
Вот пример кода, иллюстрирующий проблему:
[ApiController]
[Route("api")]
public class TestController : ControllerBase
{
[HttpPost]
[Route("Test")]
public IActionResult Test(TestRequest request)
{
Console.WriteLine("request.UserId: " + request.UserId);
Console.WriteLine("request.Token: " + request.Token);
return Ok();
}
}
public class TestRequest
{
[FromBody]
public string UserId { get; set; }
[FromHeader(Name = "Authorization")]
public string Token { get; set; }
}
Кто-нибудь когда-нибудь сталкивался с той же проблемой?
[FromHeader(Name = "Authorization")] string token
? - person Chetan Ranpariya   schedule 26.09.2019