asp.net-mvc – 如何在视图模型中更改隐式必需属性的错误消息?

我在我的视图模型中声明了属性,如:

    [Required(ErrorMessage = "The Date field is required for Start.")]
    [Display(Name = "Start")]
    public DateTime DateStart { get; set; }

但是,我仍然获得默认的“开始”字段是必需的错误消息.我假设这是因为隐式需要不可为空的DateTime,并且忽略Required属性.有没有办法为这些特定属性自定义我的错误消息,除了使它们可以为空?

最佳答案 对,你的问题是你的财产不可空.对于不可为空的属性,必需属性是没有意义的.如果没有StartDate值,则验证不会转到Required属性,并且在上一步中失败.如果你想获得你的ErrorMessage,你应该

使用:

[Required(ErrorMessage = "The Date field is required for Start.")]
[Display(Name = "Start")]
public DateTime? DateStart { get; set; }

您无法为在模型绑定上获取null的不可变类型自定义ErrorMessage,因为它在MVC框架中是深度硬编码的.

点赞