1

我有这个代码:

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

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

4

3 回答 3

2

我在评论中指出的解决方案的要点是,您可以对包含字符串表示形式而不是 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; }
}
于 2012-12-20T23:03:10.450 回答
1

数据注释将为您工作!

于 2013-05-24T19:36:14.310 回答
0

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

于 2012-12-20T22:50:25.717 回答