【问题标题】:FromHeader Asp.NET Core binding to default valueFromHeader Asp.NET Core 绑定到默认值
【发布时间】:2017-05-06 02:50:11
【问题描述】:

我正在使用以下基本控制器测试 Asp.Net core 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;
    }
}

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

【问题讨论】:

    标签: c# asp.net binding http-headers asp.net-core-webapi


    【解决方案1】:

    表单标题接受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

    【讨论】:

      【解决方案2】:

      显然,最初认为不需要这样做,他们正在等待反馈。但是,根据issue 5859,它看起来很可能处于 2.1.0 里程碑。

      【讨论】:

      • 很高兴听到这个消息。此外,这也没有得到很好的记录。
      猜你喜欢
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2020-05-31
      相关资源
      最近更新 更多