0に非ゼロの小数の変換停止ASP.NETコア3.1 [FromForm]

GimpFlamingo:

私は場合POST以下に、非ゼロ変換されJobNumberて送信値の代わりに0に。

 [HttpPost("{testName}")]
        public async Task<ActionResult<FirstPieceStamps>> PostFirstPieceStamps(string testName, [FromForm] FirstPieceStamps firstPieceStamps)

ここでFirstPieceStamps のモデルは、

public class FirstPieceStamps
    {
        [Column(TypeName = "decimal(10,3)")]
        public decimal JobNumber { get; set; }

        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int StampID { get; set; }

        [Required]
        public int TestID { get; set; }

        [Required]
        public int UserTypeID { get; set; }

        [Required]
        public bool Stamped { get; set; } = false;
#nullable enable
        public string? FirstName { get; set; }

        public string? LastName { get; set; }
#nullable disable
        public FirstPieceJobs FirstPieceJobs { get; set; }

        public FirstPieceTests FirstPieceTests { get; set; }

        public FirstPieceUserTypes FirstPieceUserType { get; set; }

    }

request私はから作るしようとしているPostmanことをテストします。

https://localhost:5001/api/FirstPieceStamps/Layflat?JobNumber=266019.001&Stamped=true&FirstName=John&LastName=Doe

JobNumber値に変換されなければならない小数点数、しかし代わりに、単に0に変換されます。

ブライアン・ルイス:

FromFormの使用を確認してください。あなたは上記の持っているように、あなたが本当にこのPOSTを送信している場合は、paramsがクエリ文字列にあり、あなたの代わりに[FromQuery]使用する必要があります。私はあなたのモデルと新鮮なコア3.1 APIプロジェクトと、このコントローラメソッドを作成し、私はFromQueryにFromFormを変更したときにのみ、正しく働きました。あなたが仕事にFromFormをしたい場合は、郵便配達中にクエリ文字列と使用「フォームデータ」オプションからそれらを削除する必要があります。FromQueryでは、小数との完全なJOBNUMBERを経由して来ました。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=392154&siteId=1