从表单数据请求绑定浮点数时出错

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")
            });

基本上它设置了请求本地化,因此将绑定带点的浮点数。