我有这个代码:
@Html.TextBoxFor(m => Model.MyDateTime)
MyDateTime - 是 DateTime 对象。它在文本框中显示正确的日期和时间:09/10/2010 05:19:56 PM 但是当我尝试单击提交按钮时,它显示它的值不正确。我使用 jquery.validate.unobtrusive.js 文件进行验证。
我有这个代码:
@Html.TextBoxFor(m => Model.MyDateTime)
MyDateTime - 是 DateTime 对象。它在文本框中显示正确的日期和时间:09/10/2010 05:19:56 PM 但是当我尝试单击提交按钮时,它显示它的值不正确。我使用 jquery.validate.unobtrusive.js 文件进行验证。
我在评论中指出的解决方案的要点是,您可以对包含字符串表示形式而不是 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; }
}
数据注释将为您工作!
您可以使用dataannotaion正确验证您的模型字段。使用这样的注释,您可以在注释中手动提供日期格式,将字符串模式传递给它。在这种情况下,它将完美地使用默认的 mvc 验证。