2010-06-20 40 views
5

举个例子,假设我有一个包含100个属性的单个域对象。在我的UI我所需要的样式的复杂的验证:是否有复杂的aspnet UI验证的设计模式?

  • 如果A = 1,显示控制B,C,D B被需要,C不是,d不需要必须小于30,如果它被填充。
  • 如果A = 2,显示控制B,d,不需要E. B,d是必需的,但是没有限制,并且不需要如
  • 如果A = 3,放映控件B,E,F B被要求,并且必须是超过10,则需要E,不需要F。
  • 若B = 3,F = 5,则表明控制G,但只有当A = 3

你可以在这里看到我的问题。这些属性之间的关系是非常复杂的,验证依赖于较早的值并结合其他值进行更改。

如何都模仿的人在过去处理了这个?验证不需要经常进行,但基于config/xml的解决方案可能是最好的。

+0

你确定这个域对象没有太多的责任吗? – Oded 2010-06-20 20:31:23

+0

是的,但不幸的是它不能改变。 – Craig 2010-06-20 20:37:58

+0

分手的责任将有助于验证... – Oded 2010-06-20 20:42:06

回答

1

你可以把这种巨大的域对象到更小的对象只包含需要的属性的子集,并根据他们所描述场景为它们命名。它会创建某种ViewModel。

必须有一个特定用例的A =“X”或B =“Y”等各种情况下如果你是分裂的事情了,你可以定义每个视图模型验证规则。这些ViewModels还可以包含控件的可见/隐藏设置。