You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中无法正确提交小数数值问题求助

问题排查与解决步骤

1. 修正视图字段绑定错误

你的视图中输入框的asp-for属性写的是HayvanKilo,但实体类的属性是animalWeight,字段名不匹配会导致模型绑定异常,这很可能是解析错误的根源。把输入框代码改成:

<input type="number" asp-for="animalWeight" class="form-control" placeholder="Animal Weight" step="0.1">

2. 检查并配置服务器区域文化

如果你的输入习惯用逗号(,)作为小数点分隔符(比如土耳其语区域场景),但服务器默认文化是用点(.)作为小数点,会导致解析时忽略逗号,把4,5识别成45。可以通过以下方式配置:
在Program.cs中添加全局文化支持(以土耳其语为例):

var builder = WebApplication.CreateBuilder(args);
// 添加文化配置
builder.Services.Configure<RequestLocalizationOptions>(options =>
{
    var supportedCultures = new[] { "tr-TR", "en-US" };
    options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("tr-TR");
    options.SupportedCultures = supportedCultures.Select(c => new System.Globalization.CultureInfo(c)).ToList();
    options.SupportedUICultures = options.SupportedCultures;
});

var app = builder.Build();
// 启用本地化中间件
app.UseRequestLocalization();

3. 给模型属性添加格式注解

在实体类的animalWeight属性上添加格式化注解,确保编辑和显示时都能正确识别小数:

public partial class animal
{
    [DisplayFormat(DataFormatString = "{0:F1}", ApplyFormatInEditMode = true)]
    public double animalWeight { get; set; }
}

4. 验证前端提交参数

打开浏览器开发者工具(F12),切换到网络标签,提交表单后查看请求参数,确认前端发送的数值是4.5/4,5还是45:

  • 如果发送的是45,说明前端输入或转码有问题,检查输入框的step属性是否正确,或者是否有前端脚本修改了数值;
  • 如果发送的是4.5/4,5但后端接收为45,则重点排查后端的文化配置和模型绑定逻辑。

内容的提问来源于stack exchange,提问作者umut günenç

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:55:03