【发布时间】:2013-01-07 09:31:09
【问题描述】:
我有这段代码,在不同的情况下,使用来自MVC Foolproof Validation 的RequiredIf 属性
[Display(Name = "ID Number")]
[RequiredIf("CitizenshipId", 1)]
public string IdNumber { get; set; }
但我真正想要的是
[RequiredIf("CitizenshipId", GetId("SA Citizen")]
现在,我认为其他开发人员也希望消除幻数 1 到目前为止,我想到的只是函数必须查找的查找函数参数的字符串名称。把 1 变成“1”是很糟糕的。
注意:这里的常量并不理想,因为上面的幻数指的是数据库的 PK。我想这也不理想,我应该为每个查找条目添加一个带有“常量代码”的第三列,因此无论 PK 是什么,无论文本是什么,我们仍然有一个不可变的值。
注意:我在 Orchard 内部工作,所以与自定义提供商没有什么有趣的业务。
【问题讨论】:
-
属性参数可以是
const成员。 -
最好将这些称为magic values,因为它们可以是任何常量就地定义的值。
-
@ani,在这种情况下,幻数是一个 PK,这就是为什么我要查找它而不是将其编码为常量的原因。
标签: c# .net asp.net-mvc c#-4.0