.net - MVC4 格式日期未使用 DisplayFormat 值进行验证

标签 .net asp.net-mvc-4 ef-code-first

我已经看到了大约 1000 篇关于此的帖子,但我一定错过了一些东西。

基本上,我试图在我的站点中使用 dd/MM/yyyy 格式,但在验证时出现问题。

我有一个 View 模型:

   public class LoanBaseViewModel
    {
        public int LoanId { get; set; }

        [Required]
        [DataCompareValidation("ReturnDate", ErrorMessage = "Return date should be later than loan date")]
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
        public DateTime LoanDate { get; set; }


        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
        [DataType(DataType.Date)]
        public DateTime? ReturnDate { get; set; }
}

在我的 EditorTemplate 我有这个:
@model System.Nullable<System.DateTime>
@if (Model.HasValue)
{
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", Model.Value), new { @class = "jq-date" })
}
else
{
    @Html.TextBox("", "", new { @class = "jq-date" })
}

在页面加载上,我在 jq-date 上附加了一个 Jquery DatePicker。
 $("#loanForm").find(".jq-date").datepicker({ dateFormat: 'dd/mm/yy' });

显示工作正常,但每次我尝试保存时,如果我使用 dd/MM/yyyy 日期,它会告诉我日期格式不正确。

知道为什么吗?

我已经尝试了大约一个小时,这让我发疯了!

谢谢你的时间

汤姆

编辑:
没有更好的工作
真正奇怪的是它可以在我的笔记本电脑上运行,但在我的台式机上不起作用,它们都在 dd/MM/yyyy 中显示日期,我的笔记本电脑接受 25/08/2013 但不是我的台式机......

编辑:
解决方案在这里:stackoverflow.com/a/13528769/1741443。

最佳答案

如果不了解您如何设置 jQuery 日期选择器的格式,就很难明确回答。 jq-date 的默认返回值为 mm/dd/yy(所有数值数据)。

您设置的格式是与字段相关的格式;等待 jQuery 以它期望的格式传递日期的字段。字段级格式不适用于 jQuery - 这是一个单独的格式要求。

  • 我建议您关闭 ApplyFormatInEditMode/false 并查看日期字段是否与 datepicker 一起正常工作。
  • 如果这不起作用,则根据以下内容继续格式化 jq-date。

  • 有关 Datepicker 格式选项的更多信息,请查看 API documentation或转至 this page

    我确定您已经在页面上引用了 jQuery 和 Jquery UI,但您应该为该日期选择器包含以下自定义:
    <script type="text/javascript">
    $(function(){ 
    $('.datepicker').datepicker({dateFormat: 'dd-M-yy'});
     });
    </script>
    

    在上面的示例中,jQuery 格式返回 dd - 两位数的月份日期,M - 月份的简称,以及 yy - 四位数的年份。

    希望有帮助。

    关于.net - MVC4 格式日期未使用 DisplayFormat 值进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046617/

    相关文章:

    asp.net-mvc-4 - 如何在莫里斯图中传递数据库中的数据?

    asp.net-mvc - 为什么模型绑定(bind)在我的 POST 操作方法中不起作用?

    c# - 在 C# 中以智能方式删除所有有问题的字符

    java - Java和.Net在JIT上有什么区别

    asp.net - 转换没有键或名称属性的配置文件

    asp.net - 在mvc网站的base标签中设置url路径的不同方法

    entity-framework - 防止 Entity Framework 在每个类型继承的表中添加重复的键

    c# - Entity Framework 与 ASP.NET 样板的一对一关系

    mysql - 强制 Entity Framework 代码首先重新创建应用程序运行时删除的数据库

    .net - 何时以及何时不安装到 GAC 中?