自定义ASP.net MVC中无效日期的错误消息

时间:2011-09-28 16:06:05

标签: c# asp.net-mvc asp.net-mvc-validation

我有一个带日期的ASP.net MVC模型:

public class EditModel
{ 
    [Display(Name="DOB")]
    public DateTime? DateOfBirth { get; set; }
}

@Html.TextBoxFor(m => m.DateOfBirth)
@Html.ValidationMessageFor(m => m.DateOfBirth)

当用户输入无效日期(例如9/31/2011)时,错误消息将返回:

The value '9/31/2011' is not valid for DOB.

当它尝试进行模型绑定并且不是我的验证之一时会发生这种情况。有没有办法自定义此错误消息?我希望它是这样的:

Please enter a valid date for the Date of Birth.

我不要求用户输入日期,但是当他们输入INVALID值时,我想自定义错误。

4 个答案:

答案 0 :(得分:5)

您可以使用数据注释来处理错误,或者,在这种情况下,您可以执行此操作:

@Html.ValidationMessageFor(m => m.DateOfBirth , "Please enter a valid date for the Date of Birth.") 

答案 1 :(得分:3)

试试这个,

[DataType(DataType.Date, ErrorMessage = "Please enter a valid date.")]
public System.DateTime DateOfBirth { get; set; }

希望这会对你有所帮助.. :)

答案 2 :(得分:1)

public class myClass()
{

    [Display(Name="Date of Birth"), DataType(DataType.Date, ErrorMessage = "Please enter a valid date for the Date of Birth.")]
    public string dateOfBirth { get; set; }
}

答案 3 :(得分:0)

我的数据类型错误消息不起作用 使用常规

删除
[Display(Name="Date of Birth")]
[RegularExpression(@"^(3[01]|[12][0-9]|0[1-9])[-/](1[0-2]|0[1-9])[-/][0-9]{4}$", ErrorMessageResourceName = "DateNotValid", ErrorMessageResourceType = typeof(Resources))]
    public string dateOfBirth { get; set; }

DateNotValid:正在资源文件中使用。如果需要,您可以更改为错误消息 上面的格式为:dd-MM-YYYYY