【发布时间】:2011-12-09 14:58:40
【问题描述】:
我想创建一个我将进一步定制的表单验证引擎,但作为一个基础,我需要一些关于如何构建基础的指导。
表单字段可以是您的标准表单字段,例如:
textbox
drop down list
checkboxes
etc.
所以这个验证引擎会得到一个表单字段类型的列表,然后 每个表单字段的一组规则。
例如:
假设你有一个文本框,规则将应用于文本框,它必须确保值是“蓝色”或“123”(因此它可以是字符串或整数值)。
我正在寻找有关如何布置课程的方向。
有什么设计模式可以用吗?
public class Rule
{
public RuleType RuleType {get;set;}
public ComparisonType ComparisonType {get;set;}
}
public enum RuleType
{
TextBox,
DropDownList
}
public enum ComparisonType
{
Equal,
GreaterThan,
GreaterThanOrEqual,
LessThan,
LessThanOrEqual
}
这看起来是一个好的开始吗?
在 Rule 类上,我将如何设置表单字段的值。
即假设 compareType 是“Equal”,我必须说等于“Blue”或 123。我不能有字符串属性,因为我还必须比较整数或布尔值。
想法?
你会如何设计这个?
【问题讨论】:
-
“你会如何设计这个?” - 我会基于数据,而不是 GUI。并且可能使用 DataAnnotations 并早点回家。
-
这只是我必须做的基础,所以我需要对其进行更多自定义,这可能会使数据注释脱离图片,但请阅读它,谢谢。
-
通常,任何复杂的数据验证都是通过业务规则完成的。 Web 表单验证也不例外。
标签: c# rule-engine