首页 文章

MVC 5显示日期时间格式

提问于
浏览 1211 次
-2

我是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 回答

  • -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>
    

相关问题