【问题标题】:ASP MVC 5 Client Validation of enumeration枚举的 ASP MVC 5 客户端验证
【发布时间】:2014-11-28 06:35:58
【问题描述】:

我想检查表单中的枚举字段。该字段为必填项。这是我定义枚举的方式:

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(Category 的 EditTemplate 是一个 Combobox)。这意味着,我应该得到消息“这是强制性的!”,不是吗?但我没有收到任何消息说字段类别是强制性的。我无法理解RequiredAttribute 如何与枚举字段一起使用。

【问题讨论】:

  • 你需要展示你是如何生成控件的,但是让属性可以为空public Categories? Category { get; set; }
  • 您好斯蒂芬,感谢您的解决方案。它对我有帮助!

标签: c# asp.net-mvc


【解决方案1】:

enum 是值类型而不是引用类型。 Required 检查空值,你只能得到具有引用类型的空值。

你可以试试:

public class Categories { }

【讨论】:

  • 为什么不公开类别?类别{获取;放; } ?
  • 您好,感谢您的解释。最后我使用了 Nullable 解决方案。我希望类别保持枚举
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
相关资源
最近更新 更多