C# 如何在TextBoxFor ASP.NET MVC中验证DateTime

C# 如何在TextBoxFor ASP.NET MVC中验证DateTime,c#,asp.net-mvc,validation,asp.net-mvc-4,C#,Asp.net Mvc,Validation,Asp.net Mvc 4,我有以下代码: @Html.TextBoxFor(m => Model.MyDateTime) MyDateTime-是DateTime对象。 它在文本框中显示正确的日期和时间:09/10/2010 05:19:56 PM 但当我尝试单击submit按钮时,它显示该值不正确。我使用jquery.validate.unobtrusive.js文件进行验证。可以正确地用于验证模型字段。使用这种编年史,您可以在注释中手动提供日期格式,并将字符串模式传递给它。在这种情况下,它将完全使用默认的mv

我有以下代码:

@Html.TextBoxFor(m => Model.MyDateTime)
MyDateTime-是DateTime对象。 它在文本框中显示正确的日期和时间:09/10/2010 05:19:56 PM
但当我尝试单击submit按钮时,它显示该值不正确。我使用jquery.validate.unobtrusive.js文件进行验证。

可以正确地用于验证模型字段。使用这种编年史,您可以在注释中手动提供日期格式,并将字符串模式传递给它。在这种情况下,它将完全使用默认的mvc验证

我在评论中指出的解决方案的要点是,您可以为视图使用一个专门的模型,该模型包含一个字符串表示,而不是DateTime类型,它允许您轻松地使用验证值。当您在服务器上收到此模型(从客户端发布)时,只需将其转换为相应的数据库模型

public class ViewModel
{
    [Required]
    [RegularExpression("\d{2}-\d{2}-\d{4}\s\d{2}:\d{2}:\d{2}")]
    public string MyDateTime { get; set; }

    public Model ToPoco()
    {
        return new Model {
            MyDateTime = DateTime.Parse(this.MyDateTime, "MM-dd-yyyy H:mm:ss")
        };
    }
}

public class Model
{
    DateTime MyDateTime { get; set; }
}

数据注释将为您工作

您为
MyDateTime
属性设置验证的方式是什么?我有。在那里看到公认的答案。