簡體   English   中英

在Model中為DateTime使用數據注釋

[英]Using Data annotation in Model for DateTime

我使用下面的代碼,彈出日期日歷在我的Razor視圖

模型

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
        [DataType(DataType.Date)]
        public Nullable<System.DateTime> EndTime { get; set; }

視圖

<div class="form-group">
            @Html.LabelFor(model => model.EndTime, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-4">
                @Html.EditorFor(model => model.EndTime, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.EndTime, "", new { @class = "text-danger" })
            </div>
        </div>

現在我想使用DateTime代替Date.DataFormat字符串應該是什么?

我的嘗試

Display(Name = "End Date Time")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}{1:HH/mm}")]
        [DataType(DataType.DateTime)]

我收到格式異常?

由於[DataType(DataType.Date)]屬性,您的EditorFor()方法使用type="date"呈現輸入,該屬性將生成瀏覽器的HTML-5 datepicker(但這僅在Chrome和Edge中受支持)。

要生成HTML-5 datetimepicker,您需要呈現type = "datetime-local"的輸入,但是沒有數據注釋屬性。 相反,您需要自己生成type屬性。

@Html.TextBoxFor(m => m.EndTime, "{0:s}", new { @type = "datetime-local", @class = "form-control" })

注意"{0:s}""{0:yyyy-MM-ddTHH:mm:ss}"快捷方式,並且將在瀏覽器區域性中顯示日期和時間。 還要注意的是,你不需要你的[DataType]屬性或ApplyFormatInEditMode = true的財產[DisplayFormat]屬性,因為它們只適用於EditorFor()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM