如何在模型验证时处理非必需的,不可为空的Datetime值

时间:2015-12-30 07:58:25

标签: asp.net-mvc model-binding modelstate

在我的模型中,我有一个不可为空的DateTime字段。我没有把它变成必填字段。当我将视图中的相应输入留空并检查模型状态时,我看到该字段的验证失败。它说“价值不能空虚”。现在,我明白简单的值不能为空,因此必须为它们分配一些值。我也明白让这个字段可以为空可以解决这个问题。但是,当某个字段的尝试值为空(就像默认模型绑定那样)以显示我的自定义错误消息而不是通用错误消息时,我怎么能理解这种情况呢?

1 个答案:

答案 0 :(得分:1)

public class Person
{
    [DataType(DataType.DateTime)]
    [Required(ErrorMessage = 'show my custom error message instead of the generic one')]
    public DateTime StartDate{get;set;}
}

将错误消息显式指定为字符串。或者,您可以在资源文件中定义它们,并根据传入用户的语言/文化选择对它们进行本地化。