如何在textbox中验证DateTime.净MVC

本文关键字:DateTime MVC 验证 textbox | 更新日期: 2023-09-27 17:49:15

我有这样的代码:

@Html.TextBoxFor(m => Model.MyDateTime)

MyDateTime -是DateTime对象。它在文本框内显示正确的日期和时间:09/10/2010 05:19:56 PM但是当我尝试点击提交按钮时,它显示它是不正确的值。我使用jquery.validate. unobtrusives .js文件进行验证

如何在textbox中验证DateTime.净MVC

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

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; }
}

数据注释将为您工作!

您可以使用数据注释来正确地验证您的模型字段。使用这种转换,您可以在注释中手动提供日期格式,并将字符串模式传递给它。在这种情况下,它将完美地与默认mvc验证一起工作。