自定义类的必需属性

时间:2014-03-17 16:09:39

标签: c# validation model-view-controller asp.net-mvc-5

我正在构建一个MVC 5应用程序,并且已经达到了我需要验证用户输入的程度。

我想将[Required]属性应用于不是内置数据类型的类。这是我的视图模型的片段:

public class GraffitiViewModel : EformBase
{
    [Required(ErrorMessage = "Please select yes or no")]
    public RadioButtonList<YesNoType> GraffitiOffensive { get; set; }
    [Required(ErrorMessage = "Please select yes or no")]
    public RadioButtonList<YesNoType> GraffitiTag { get; set; }
    // ... more stuff here
}

RadioButtonList是一个为相应的C#单选按钮定义发出HTML标记的类。 [Required]属性在此上下文中不起作用。有没有办法可以扩展我的RadioButtonList类或[Required]属性,所以我不必修改我的ViewModel?

我正在考虑将执行此验证的自定义属性或我的RadioButtonList中的方法,该方法将返回指示验证是否成功的bool。

期待您的回复!

中号

1 个答案:

答案 0 :(得分:1)

如果符合以下情况,则应触发[Required]属性:

  • 该属性为null OR
  • 属性是字符串类型,它是空的或空格

有关详细信息,请参阅MSDN

或者,您可以使用代码here创建一个自定义属性,该属性会根据您决定的条件触发。