.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的默认值,所以它不会失败的要求字段验证,当用户不选择收入在单选按钮列表。

我能想到的是使用范围验证,并应用范围验证,如果性别是女性。或如果有一个选项强制单选按钮列表返回空字符串(如果选中的选项为空)

或者是否有更好的方法或工作?

.net MVC 4需要对Enum进行字段验证

由于枚举很容易转换为整数,因此使用它们作为模型属性可能更容易。然后,您可以使Income属性为空,这使得它与RequiredIf属性一起更好地工作:

public class SampleViewModel {
    [Required]
    public int Gender {get;set;}
    [RequiredIf("Gender", (int)Gender.Female)]
    public int? Income {get;set;}
}

在你的控制器中,你只需要将它们转换回你的枚举:

(Gender)model.Gender

等。