FromHeader Asp.NET 核心绑定到默认值

FromHeader Asp.NET Core binding to default value

我正在使用以下基本控制器测试 Asp.Net 核心 WebApi:

[Route("test")]
public class TestController
{
    [Route("mult")]
    [HttpGet]
    public int Multiply(int x, int y)
    {
        return x * y;
    }
}

然后,在 Fiddler 中,我发送以下请求:

并且,由于某种原因,响应为 0。xy 都绑定到进入方法时的默认整数值。

我也试过:

[Route("test")]
public class TestController
{
    [Route("mult")]
    [HttpGet]
    public int Multiply([FromHeader]int x, [FromHeader]int y)
    {
        return x * y;
    }
}

但是结果是一样的。我做错了什么?

形式 headers 接受 string 而不是 int 所以你的代码应该是

[Route("test")]
public class TestController
{
        [Route("mult")]
        [HttpGet]
        public int Multiply([FromHeader]string x, [FromHeader]string y)
        {

            return Int32.Parse(x) * Int32.Parse(y);
        }
}

您必须在 string 中获取 xy 的值并将其转换为 int

显然最初认为这不需要,他们正在等待反馈。但是,根据 issue 5859.

,它看起来很可能处于 2.1.0 里程碑中