[英]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 屬性的默認值。 模型綁定很可能無法識別任何適用於屬性的有效值。
大多數情況下,這是由於分隔符的文化沖突,特別是因為您使用文本輸入作為屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.