MVC Foolproof ValidationRequiredIf
の属性を使用して、さまざまなインスタンスでこのコードを使用しています
[Display(Name = "ID Number")]
[RequiredIf("CitizenshipId", 1)]
public string IdNumber { get; set; }
しかし、私が本当に欲しいのは
[RequiredIf("CitizenshipId", GetId("SA Citizen")]
さて、他の開発者も何千人も望んでいると思うので、マジックナンバー1を排除することです。これまでのところ、私が考えるのは、関数がルックアップする必要のあるルックアップ関数パラメーターの文字列名だけです。そして、1を「1」にするのは明らかに悪いことです。
注:上記のマジックナンバーはDBのPKを参照しているため、定数はここでは理想的ではありません。これも理想的ではないと思います。ルックアップエントリごとに「定数コード」を含む3番目の列を追加する必要があるため、PKやテキストに関係なく、不変の値が1つあります。
注意:私はオーチャード内で働いているので、カスタムプロバイダーとの面白いビジネスはありません。