0

以下条件的正确货币数据注释是什么?

  1. 带 2 位小数的数字量。
  2. 最低金额 1.00 美元;最高金额 $25000.00

这是我的领域。

public string amount {get; set;}
4

2 回答 2

0

要检查小数位,您可以使用带有正确正则表达式的正则表达式注释来匹配您的数字格式:

[RegularExpression(@"(\.\d{2}){1}$")]

要检查最小值和最大值,我们必须创建自己的自定义属性

[MinDecimalValue(1.00)]
[MaxDecimalValue(25000.00)]
public string amount { get; set; }

我们可以通过创建一个派生自ValidationAttribute的类并覆盖IsValid方法来做到这一点。

请参阅下面的实现。

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
    public class MaxDecimalValueAttribute : ValidationAttribute
    {
        private double maximum;
        public MaxDecimalValueAttribute(double maxVal)
            : base("The given value is more than the maximum allowed.")
        {
            maximum = maxVal;
        }
        public override bool IsValid(object value)
        {
            var stringValue = value as string;
            double numericValue;
            if(stringValue == null)
                return false;
            else if(!Double.TryParse(stringValue, out numericValue) ||  numericValue > maximum)
            {
                return false;
            }
        return true;
    }
}

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class MinDecimalValueAttribute : ValidationAttribute
{
    private double minimum;
    public MinDecimalValueAttribute(double minVal)
        : base("The given value is less than the minimum allowed.")
    {
        minimum = minVal;
    }
    public override bool IsValid(object value)
    {
        var stringValue = value as string;
        double numericValue;
        if (stringValue == null)
            return false;
        else if (!Double.TryParse(stringValue, out numericValue) || numericValue < minimum)
        {
            return false;
        }

        return true;
    }
}

您可以阅读有关如何创建自己的属性的更多信息,此代码也需要更多改进。

希望这可以帮助!

于 2013-08-08T07:32:08.033 回答
0

请使用链接后面的文化信息类

于 2013-08-08T04:53:54.977 回答