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。x
和 y
都绑定到进入方法时的默认整数值。
我也试过:
[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
中获取 x
和 y
的值并将其转换为 int
显然最初认为这不需要,他们正在等待反馈。但是,根据 issue 5859.
,它看起来很可能处于 2.1.0 里程碑中
我正在使用以下基本控制器测试 Asp.Net 核心 WebApi:
[Route("test")]
public class TestController
{
[Route("mult")]
[HttpGet]
public int Multiply(int x, int y)
{
return x * y;
}
}
然后,在 Fiddler 中,我发送以下请求:
并且,由于某种原因,响应为 0。x
和 y
都绑定到进入方法时的默认整数值。
我也试过:
[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
中获取 x
和 y
的值并将其转换为 int
显然最初认为这不需要,他们正在等待反馈。但是,根据 issue 5859.
,它看起来很可能处于 2.1.0 里程碑中