运行时注释设置

时间:2016-04-30 22:45:15

标签: c# asp.net asp.net-mvc data-annotations

我有一个成熟的ASP.NET WebForms项目,它为许多组织客户提供服务。每个组织都有很多用户,但组织本身在用户配置文件字段设置方面具有很大的灵活性。

我正在考虑将部分或全部开发部署到ASP.NET MVC。 System.ComponentModel.DataAnnotations似乎提供了许多好处,但是,在我们的申请中,本组织可以控制许多细节,例如:

  1. 实际使用了哪些用户配置文件字段(可用字段是有限的,可以是模型的一部分,但大多数组织不会使用所有这些字段。我不希望这些字段显示到最后用户(基于他们所属的组织)

  2. 措辞:组织(管理员)可以定义某些字段的“显示名称”(例如他们是否要调用StaffNumber字段“员工编号,员工编号,ABC代码”等等,因此它适合于他们的工作人员熟悉的是什么。DisplayAttribute是一个密封的类,所以我无法覆盖它以根据登录用户的组织设置提供数据库查找。

  3. ReadOnly:最终用户可以编辑某些用户配置文件字段,但有些用户需要根据组织管理员为其组织设置的设置进行读取(在这种情况下,值本身是通过批量导入设置的) /刷新系统)
  4. ASP.NET MVC中的所有上述内容都可以通过数据注释进行控制,但这些值会被硬编码到模型的属性中。上面第1项的资源文件是不行的,我们有超过2000个组织,每周都会创建新组织。

    我正在寻找的是覆盖DisplayAttribute等属性的方法,并允许实际名称来自数据存储。我已经环顾四周,但我似乎无法在这里看到任何适合该法案的内容。

    有人能指出我这种技术是否可行?

    感谢。

0 个答案:

没有答案