从表单数据请求绑定浮点数时出错
Error while binding a float from form-data request
我有以下端点:
[HttpPost]
public IActionResult Test([FromForm] TestRequest request)
{
return Ok();
}
使用以下模型:
public class TestRequest
{
public string Name { get; set; }
public bool IsTrue { get; set; }
public float PriceFloat { get; set; }
public int PriceInt { get; set; }
public IFormFile Photo { get; set; }
}
这是我的请求和错误:
但是如果我将 22.44 更改为 22,44 它工作正常并且不会返回任何错误。模型绑定是正确的。看来那个点有问题。这让我很困扰,因为我想接受来自前端的 cors 请求,而 js 浮点数是用点而不是逗号序列化的。
知道为什么会发生这种情况以及如何解决吗?提前致谢
不绑定号码的原因是你的文化设置。尝试在 Startup.cs
中的 Configure 方法中执行以下操作
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US")
});
基本上它设置了请求本地化,因此将绑定带点的浮点数。
我有以下端点:
[HttpPost]
public IActionResult Test([FromForm] TestRequest request)
{
return Ok();
}
使用以下模型:
public class TestRequest
{
public string Name { get; set; }
public bool IsTrue { get; set; }
public float PriceFloat { get; set; }
public int PriceInt { get; set; }
public IFormFile Photo { get; set; }
}
这是我的请求和错误:
但是如果我将 22.44 更改为 22,44 它工作正常并且不会返回任何错误。模型绑定是正确的。看来那个点有问题。这让我很困扰,因为我想接受来自前端的 cors 请求,而 js 浮点数是用点而不是逗号序列化的。
知道为什么会发生这种情况以及如何解决吗?提前致谢
不绑定号码的原因是你的文化设置。尝试在 Startup.cs
中的 Configure 方法中执行以下操作 app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US")
});
基本上它设置了请求本地化,因此将绑定带点的浮点数。