[英]ASP.Net Core 3.1 Razor Pages and CRUD operation with Dapper
[英]Why validation for Decimal not work for ASP.NET Core 3.1 Razor Pages?
為什么 Decimal 的驗證不適用於 ASP.NET Core 3.1 Razor Pages?
客戶端工作,但在發布數據后,我收到此服務器端驗證消息(在我的情況下為 ModelState.IsValid = false)。 值“1.000000”不適用於...
模型屬性:
[Column(TypeName = "decimal(16, 6)")]
public decimal ValueFactor { get; set; }
看法:
<input class="form-control" asp-for="@Model.ValueFactor" />
<span asp-validation-for="ValueFactor" class="text-danger"></span>
Column屬性是Code First Data Annotation
為了驗證十進制,您需要結合使用正則表達式和范圍驗證,如下所示:
[RegularExpression(@"^\d+\.\d{6}$")]
[Range(0, 9999999999.999999)]
上面的正則表達式屬性將接受“任意數量的數字,后跟點(.)然后是 6 位數字”。 因此接受以下數字:1.000000、500000.000000 etx。
范圍屬性接受 0 到 9999999999.999999 之間的類型decimal(16,6) 的數字
在服務器端嘗試這樣的事情。
public class PersonModel
{
[Required(ErrorMessage = "Required Decimal Number")]
[RegularExpression(@"^[0-9]+(\.[0-9]{1,100})$", ErrorMessage = "Valid Decimal number with maximum decimal places.")]
public string Expenses { get; set; }
}
我的模型
[Column(TypeName = "decimal(18,2)")]
public Decimal Bonus { get; set; }
我創建了一個視圖模型。
[Display(Name="Ek Ücret")]
[RegularExpression(@"^(\d+),(\d{2})$", ErrorMessage = "Tutar 0,00 - 9999999999,99 aralığında olmalıdır. ")]
public string Bonus { get; set; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.