如何在依赖于另一个字段的字段上进行数据类型验证?

时间:2013-01-23 16:14:54

标签: c# asp.net-mvc asp.net-mvc-3 razor entity-attribute-value

我无法执行依赖于其他字段的数据类型验证。我在此处找到的大部分示例都是根据其他字段的值创建或不显示字段(仅当MaidenNameIsMarried时才需要true。)

我的模特

public class AttributeValuesModel
{
    public IList<AttributeModel> Values {get; set;}
}

public class AttributeModel
{
    [Required]
    public string AttributeName {get; set;}

    [Required]
    public string AttributeValue {get; set;}

    [Required]
    public int DataTypeId {get; set;}
}

我想要做的是根据DataTypeId的值验证AttributeValue的用户输入。为清楚起见,在我向用户显示视图之前,DataTypeId的值已知。

    //Possible values for DataTypeId are 
    //1 for decimal
    //2 for dates
    //3 for integer

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以查看ASP.NET MVC的FoolProof验证扩展。它们包含验证属性,可用于执行条件验证,例如[RequiredIf]

更强大的验证库(以及我使用和推荐的验证库)是FluentMVC。与验证数据注释相反,此库允许您执行命令式验证而不是声明式验证。这允许您表达任意复杂性和依赖属性之间的规则。