如果标题不够有代表性,我很抱歉。
所以就我而言,我想构建一个更动态的搜索表单。以前我的搜索表单只支持相等运算符。现在我希望它支持另一个运算符(包含,大于等)。
这是我之前的搜索表单模型的样子:
public class PersonQuery
{
[StringLength(100)]
public string FirstName { get; set; }
// the rest of the properties
}
现在新的查询模型如下所示:
public class AdvPersonQuery
{
[StringLength(100)]
public FilterField<string> FirstName { get; set; }
}
其中过滤器字段:
public class FilterField<T>
{
// in this case I want the [StringLength(100)] attribute
// or any other data annotation that is put on property that use this class to be used here
public T Value { get; set; }
public OperatorTypes Operator { get; set; }
}
在这种情况下,我希望Value属性数据注释是指在上面的示例中使用此类的属性的数据注释是FirstName属性。这样当我将FirstName 的Value属性放入 View 时,该字段将根据 FirstName 属性上定义的验证属性进行验证。