网页返回结果加两位小数.00 API

Adding two decimal point .00 when returning the result from web API

我有一个 asp.net 核心网络 API 项目,当我将 JSON 结果返回给 UI 时,所有小数值都转换为整数,当我调试控制器时,我可以看到两个小数点 .00,但是当我在控制台网络选项卡中检查它时,它是整数。

那么,我如何添加一个格式化程序来保持来自数据库的十进制值,它不应该在到达 UI 时将其转换为整数。

当我调试控制器时-

在控制台网络选项卡-

您可以为小数点自定义序列化程序 属性

public class TestModel
{
    [JsonConverter(typeof(DecimalConverter))]
    public decimal Price { get; set; }
}

public class DecimalConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return (objectType == typeof(decimal));
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        writer.WriteValue(((decimal)value).ToString("0.00"));
    }

    public override bool CanRead
    {
        get { return false; }
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        throw new NotImplementedException();
    }
}

结果: