RequiredIf
属性在不同的实例中使用此代码
[Display(Name = "ID Number")]
[RequiredIf("CitizenshipId", 1)]
public string IdNumber { get; set; }
但我真正想要的是
[RequiredIf("CitizenshipId", GetId("SA Citizen")]
现在,正如我认为其他开发人员所希望的那样,是消除神奇的数字1到目前为止,我想到的只是查找函数参数的字符串名称,函数必须查找。将1变为“1”是非常糟糕的。
注意:这里的常量并不理想,因为幻数abovr指的是数据库的PK。我认为这也不理想,我应该为每个查找条目添加一个带有“常量代码”的第三列,所以不管文本是什么,无论文本是什么,我们仍然有一个不可变的值。
NB注意:我在Orchard工作,所以与自定义提供商没有任何有趣的业务。
答案 0 :(得分:3)
我使用了FluentValidator,它比属性更灵活。绝对容易测试。
答案 1 :(得分:2)
最好的办法是使用常数。