我有一个包含20个字段的.aspx表单,必须根据用户角色和订单记录的状态禁用.目前,该应用程序有5个角色和3个状态,因此我有300个不同的可能条件,我必须考虑.
我的第一个想法是将每个排列存储在一个表中,然后通过循环遍历字段来加载页面时设置字段.有没有更好的办法?请注意,我使用的是.Net 2.0而不是MVC.
我可能会存储每个字段的详细信息,然后是可以编辑它们的角色和状态,并以这种方式执行.
该系统有哪些规则?基本上,真的有300种可能的条件吗?或者是否真的某些字段只能针对特定状态进行编辑,然后只有某些角色可以编辑这些字段?或者某些字段是否也适用于某些角色?
如果它更多的是前者我可能会有这样的事情:
三个主表(如果添加字段,角色或状态,则可以轻松扩展):
字段
角色
状态
然后是两个链接表:
Field.Id和Role.Id
Field.Id和Status.Id
然后,对于任何给定的订单和用户,您可以找到哪些字段可以编辑订单的当前状态和用户角色,并且在您处理字段时适当地设置访问权限 - 但是您设置控件 - 要么动态生成它们在您收集的集合上,或静态地在页面上.
如果您遇到角色可以覆盖状态的问题,您还可以在字段/角色表中存储一个布尔值,指示无论状态如何,该字段都应该是可用的.