MVC 5显示日期时间格式

时间:2016-05-27 03:04:51

标签: c# asp.net-mvc date datetime asp.net-mvc-5

我是MVC的新手。我有一个datetime属性和dataannotaion,如下所示:

        [ReadOnly(true)]
        [DataType(DataType.DateTime), DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0: dd/MMM/yyyy HH:mm:ss}", HtmlEncode = true, NullDisplayText = "-")]
        [DisplayName("Last Update")]        
        [Required(AllowEmptyStrings = false, ErrorMessage = "Last Update is required.")]
        public DateTime LastUpdate { get; set; }

在创建页面时,它显示效果很好。但是当我提交时,我收到验证错误消息“字段上次更新必须是日期”,并且数据无法处理。然后我必须将输入格式更改为“yyyy / MM / dd”并且没有时间提交。

我正在使用@ Html.EditorFor()。如何使用EditorFor()在创建页面中显示日期格式(dd / MMM / yyyy),并在索引页面中显示日期时间格式(dd / MMM / yyyy HH:mm:ss)?或者当EditorFor值的日期时间格式如(dd / MMM / yyyy HH:mm:ss)时如何通过验证?

1 个答案:

答案 0 :(得分:-1)

最好使用文本框来获取所需的功能。这是我已经完成的方式。检查是否有任何帮助:

型号:

    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    [MyDate(ErrorMessage = "Date Of Birth cannot be greater than Today")]
    [Required(ErrorMessage = "Date Of Birth Required")]
    public DateTime? EndDate { get; set; }

查看:

      @Html.ValidationMessageFor(m => m.EndDate, "*")
      @Html.LabelFor(m => m.EndDate, "Date :", new { style = "display:inline;" })
      @Html.TextBoxFor(m => m.EndDate, "{0:MM/dd/yyyy}",new { id = "datepicker"})

在视图中"{0:MM/dd/yyyy}"用于将正确的格式设置为日期

我使用过Jquery Datepicker,代码如下:

<script>
  $(document).ready(function () {
    $("#datepicker").datepicker({
      //dateFormat: "yy-mm-dd",(to display date in required format)
      changeYear: true,
      changeMonth: true,
      yearRange: '1900:2222',
      background: '#000',
      showOn: "button"
    }).css("display", "inline-block")
          .next("button").button({
            icons: { primary: "ui-icon-calendar" },
            label: "cal",
            text: false
          });
  });
</script>
相关问题