提问人:Neptune_Code 提问时间:8/23/2022 最后编辑:Wiktor StribiżewNeptune_Code 更新时间:8/24/2022 访问量:95
如何在 ASP.NET MVC 中的文本框中仅允许特定的 Decimal 值
How to Allow Only specific Decimal values in a text box in ASP.NET MVC
问:
我有一个名为 UnitValue 的文本框,它应该只接受 3 个十进制值,即 0.1、0.2、0.3。
我正在我的模型类中的“UnitValue”属性上使用数据注释来验证整数的值,如下所示,例如,
[RegularExpression(“[0]{1}|[1]{1}“,ErrorMessage=”error“)
public int UnitHead {get;设置;}
公共十进制 UnitValue{get;set}
我也希望十进制属性也能以类似的方式发生。请求您帮助完成此验证。
提前致谢
答:
1赞
Sain Pradeep
8/23/2022
#1
您可以创建自己的自定义验证,如下所示
public class CustomDecimalValues:ValidationAttribute
{
public override bool IsValid(object value)
{
// write your own logic for validation
var decPlaces = (int)(((decimal)value% 1) * 100);
return (0.1<= decPlaces && decPlaces <= 0.3);
}
}
然后在这样的模型中使用
[CustomDecimalValues(ErrorMessage = "Allowed decimal values are 0.1,0.2 and 0.3")]
Public decimal UnitValue{get;set}
请使用链接自定义验证找到完整示例
评论
0赞
Neptune_Code
8/23/2022
谢谢@Sain普拉迪普。它几乎可以工作了,我需要将其用于 POCO 类中的多个属性,但即使值为空(非必填字段)也会触发此方法。知道如何克服这个问题吗?
0赞
Sain Pradeep
8/23/2022
put if 语句绕过空值 if (value is null){ return true;
评论