[英]Validating Multiple Fields (Datetime and Bool) in Data Annotation Model on Submit
[英]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.