为什么 Decimal 验证不适用于 ASP.NET Core 3.1 Razor Pages?
Why validation for Decimal not work for ASP.NET Core 3.1 Razor Pages?
为什么 Decimal 验证不适用于 ASP.NET Core 3.1 Razor Pages?
客户端工作,但在 post 数据之后,我收到此服务器端验证消息(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>
列属性为Code First Data Annotation
要验证小数,您需要结合使用正则表达式和范围验证,如下所示:
[RegularExpression(@"^\d+\.\d{6}$")]
[Range(0, 9999999999.999999)]
上面的 RegularExpression 属性将接受“任意数量的数字,后跟点 (.),然后是 6 位数字”。因此接受以下数字:1.000000、500000.000000 等。
Range 属性接受 0 到 9999999999.999999.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; }
为什么 Decimal 验证不适用于 ASP.NET Core 3.1 Razor Pages?
客户端工作,但在 post 数据之后,我收到此服务器端验证消息(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>
列属性为Code First Data Annotation
要验证小数,您需要结合使用正则表达式和范围验证,如下所示:
[RegularExpression(@"^\d+\.\d{6}$")]
[Range(0, 9999999999.999999)]
上面的 RegularExpression 属性将接受“任意数量的数字,后跟点 (.),然后是 6 位数字”。因此接受以下数字:1.000000、500000.000000 等。
Range 属性接受 0 到 9999999999.999999.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; }