我希望能够做到这样的事情:
public class MinimumSalaryAttribute : ValidationAttribute
{
private readonly decimal _minValue;
public MinimumSalaryAttribute(decimal minValue)
{
_minValue = minValue;
}
public override bool IsValid(object value)
{
return (decimal)value > _minValue;
}
}
然后在我看来:
[MinimumSalary(0M)]
public decimal Salary { get; set; }
这会阻止用户输入负小数。但是,我收到编译器错误:"不是有效的属性类型"。我理解这里描述的原因:Why "decimal" is not a valid attribute parameter type?
我的花瓶里的解决方法是什么?
答案 0 :(得分:0)
您可以使用“范围”注释; 10.50D是最小值,50.80D是最大值...
[Range(10.50D,50.80D,ErrorMessage ="Error min")]
public decimal Salary { get; set; }
Range属性指定数据字段值的数值范围约束。它附带System.ComponentModel.DataAnnotations(在System.ComponentModel.DataAnnotations.dll中)