ASP MVC 5客户端验证枚举

时间:2014-11-27 22:30:24

标签: c# asp.net-mvc

我想检查表单中的枚举字段。该字段是必填字段。以下是我定义枚举的方法:

public enum Categories
{
    A = 1,
    B = 2,
    C = 3
}

和我的ViewModel的属性:

    [Required(ErrorMessage = "It is mandatory!")]
    [EnumDataType(typeof(Categories), ErrorMessage="Unknown category")]
    [DisplayName("Category A")]
    public Categories Category { get; set; }

我想在客户端验证这一点。但是在开始时,当我尝试使用Category创建一个对象时,类别值为0(类别的EditTemplate是一个Combobox)。这意味着,我应该收到消息“这是强制性的!”,不是吗?但是,我没有得到任何消息称字段类别是强制性的。我无法理解RequiredAttribute如何与Enumeration字段一起使用。

1 个答案:

答案 0 :(得分:1)

enum是值类型而不是引用类型。 Required检查null,并且只获得带引用类型的空值。

您可以尝试:

public class Categories { }