簡體   English   中英

無法將十進制值傳遞給 model 參數

[英]can't pass decimal value to model parameter

我有一個像這樣的 Dto

public class AgeDto
{
    public long Id { get; set; }
    [Required]
   
    [Precision(2, 1)]
    public decimal LowAge { get; set; }

    [Precision(2, 1)]
    public decimal? HighAge { get; set; }
}

我的 for 是這樣的

 @model AgeDto
 <form class="form-account" method="post" asp-action="Index" asp-controller="ages">
                        <div class="d-inline-block w-25">
                            <div class="label-form "> From</div>
                            <div>
                                <input asp-for="LowAge" type="text" class=" w-50">
                                <span asp-validation-for="LowAge" class="text-danger star-red"></span>
                            </div>
                        </div>

                        <div class="d-inline-block w-25">
                            <div class="label-form "> To</div>
                            <div>
                                <input asp-for="HighAge" type="text" class=" w-50">
                                <span asp-validation-for="HighAge" class="text-danger star-red"></span>
                            </div>
                        </div>
                        <div  class="d-inline-block w-25">

                            <div class="d-inline-block px-3">
                                <input asp-for="Id" type="hidden" />
                                <input class="btn btn-primary btn-register" type="submit" value="Register" />
                            </div>

                        </div>
                    </form>

和 controller 像這樣

   [HttpPost]
    public async Task<IActionResult> Index(AgeDto agesDto)
    {
    //           does something
    }

雖然 LowAge 和 HighAge 是十進制的,但如果輸入 1.5 或 2.5 或任何帶小數的數字,它會在 Controller 上的 ageDto 上傳遞值 0,為什么會這樣?

0 是 model 屬性的默認值。 模型綁定很可能無法識別任何適用於屬性的有效值。

大多數情況下,這是由於分隔符的文化沖突,特別是因為您使用文本輸入作為屬性。

請參閱: https://stackoverflow.com/a/53120061/6803592

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM