C#-验证属性

C#-验证属性,c#,validation,C#,Validation,我使用C#MVC, 我有一份清单: public List<int?> SomeList { get; set; } public List SomeList{get;set;} 当用户试图输入字母而不是数字时,会显示一个验证错误,因为列表的类型是INT 我想为列表的项添加更多验证,比如“范围”(而不仅仅是)(所有这些项都将具有相同的属性) 我可以这样做吗?如何验证?您可能希望查看的源,并创建自己的属性(),该属性将验证具有范围的通用列表 好了。您始终可以自己实现验证,特别

我使用C#MVC, 我有一份清单:

 public List<int?> SomeList { get; set; }  
public List SomeList{get;set;}
当用户试图输入字母而不是数字时,会显示一个验证错误,因为列表的类型是INT

我想为列表的项添加更多验证,比如“范围”(而不仅仅是)(所有这些项都将具有相同的属性)


我可以这样做吗?如何验证?

您可能希望查看的源,并创建自己的属性(),该属性将验证具有范围的通用列表


好了。

您始终可以自己实现验证,特别是如果您想对各种条件实现任意验证

bool validate(int value){
    if ((value < min) || (value > max))
        return false;
}
bool验证(int值){
如果((值<最小值)| |(值>最大值))
返回false;
}

您必须创建自己的类,该类继承自
列表
,然后您可以通过声明新方法“隐藏”Add方法:

    class TestList : List<int>
{
    public int MinValue { get; set; }
    public int MaxValue { get; set; }

    public TestList(int minValue, int maxValue)
    {
        this.MinValue = minValue;
        this.MaxValue = maxValue;
    }

    public new void Add(int item)
    {
        if (item < MinValue || item > MaxValue)
            throw new ArgumentException("Value is outside the acceptable range");

        base.Add(item);
    }
}
类测试列表:列表
{
公共int最小值{get;set;}
public int MaxValue{get;set;}
公共测试列表(int-minValue,int-maxValue)
{
this.MinValue=MinValue;
this.MaxValue=MaxValue;
}
公共新空添加(整数项)
{
如果(项<最小值| |项>最大值)
抛出新ArgumentException(“值超出可接受范围”);
基础。添加(项目);
}
}

编辑:忘记输入构造函数。

答案在你的标题中-你到底有什么问题?如果我在列表前面加上[range(0,4)],它就不起作用了。。我需要它将用于列表中的项目,而不是列表本身。它对列表有什么帮助?我做到了!:)我使用了它-我创建了一个只包含int字段的新类,它有自己的验证属性,然后创建了这个类的列表。