如在验证范围中设置其最小值?

时间:2011-12-05 13:04:24

标签: asp.net-mvc model attributes range

我有param" min_payed"在web.config中。

我有模特

  public class Pay
    {
        [Required]
        [Range(10,99999999)]
        public Decimal Cost { get; set; }
    }

我需要从web.config获取最小值

2 个答案:

答案 0 :(得分:1)

您可以编写一个自定义范围属性,该属性将从配置文件的<appSettings>部分读取其最小值和最大值:

public class ConfigBasedRangeAttribute : RangeAttribute
{
    public ConfigBasedRangeAttribute(): 
        base(GetConfigValue("min"), GetConfigValue("max"))
    {
    }

    private static int GetConfigValue(string key)
    {
        return int.Parse(ConfigurationManager.AppSettings["key"]);
    }
}

然后用它装饰你的模型:

public class Pay
{
    [Required]
    [ConfigBasedRange]
    public Decimal Cost { get; set; }
}

答案 1 :(得分:0)

我怕你不能。您必须实现IValidatableObject(和客户端的IClientValidatable)或创建自己的数据注释来检查配置文件。

Here's another post dealing with the same issue