微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带周期的ASP Net Core十进制输入变成整数

如何解决带周期的ASP Net Core十进制输入变成整数

我有一个输入字段,其价格在模型中为小数。

<div class="form-group">
 <label asp-for="Price" class="control-label">Price</label>
 <input asp-for="Price" class="form-control"/>
</div>
[DataType(DataType.Currency)]
[Column(TypeName = "money")]
public decimal Price { get; set; }

当我用逗号输入输入字段时,页面返回验证错误
当我发布带有期间的价格时,价格将作为一个整数被接收。
例如,当我将价格设为7.00时,我的控制器收到700。

enter image description here

解决方法

nl-NL文化使用逗号作为小数点分隔符。您可以使用此代码为每个请求覆盖当前区域性的数字格式

public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
    app.Use(async (context,next) =>
    {
        var currentThreadCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
        currentThreadCulture.NumberFormat = NumberFormatInfo.InvariantInfo;

        Thread.CurrentThread.CurrentCulture = currentThreadCulture;
        Thread.CurrentThread.CurrentUICulture = currentThreadCulture;

        await next();
    });
    ...
}
,

带有周期的ASP Net Core十进制输入变成整数:-

您只需要将输入值转换为十进制即可。

可以通过更改:

实现

至:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。