.net MVC 4需要对Enum进行字段验证
本文关键字:字段 验证 Enum MVC net | 更新日期: 2023-09-27 17:50:30
我有一个关于。net MVC 4验证的问题。
我有一个页面的ViewModel有两个属性
public Class SampleViewModel {
public Gender Gender {get;set;}
public Income Income {get;set;}
}
性别和收入都是Enum值。
性别是下拉框中必需的字段,收入将只显示女性客户。因此,只有当应用程序中的性别为女性时,才需要收入。
在UI中,性别显示为下拉选项,收入显示为单选按钮列表。
我试图把RequiredIf属性收入字段,只检查,当性别是女性,然而,因为Enum将有0的默认值,所以它不会失败的要求字段验证,当用户不选择收入在单选按钮列表。
我能想到的是使用范围验证,并应用范围验证,如果性别是女性。或如果有一个选项强制单选按钮列表返回空字符串(如果选中的选项为空)
或者是否有更好的方法或工作?
由于枚举很容易转换为整数,因此使用它们作为模型属性可能更容易。然后,您可以使Income
属性为空,这使得它与RequiredIf
属性一起更好地工作:
public class SampleViewModel {
[Required]
public int Gender {get;set;}
[RequiredIf("Gender", (int)Gender.Female)]
public int? Income {get;set;}
}
在你的控制器中,你只需要将它们转换回你的枚举:
(Gender)model.Gender
等。