2017-06-20 53 views
0

我的模型具有這樣的特性:Html.EditorFor(DATETIME)防止使它成爲一個可選字段

[Display(Name = "Date of Service")] 
[DataType(DataType.Date)] 
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] // ISO compliance for jQuery validation 
[SqlDateRange] // Enforces min/max SQL DateTime values (also handles nulls caused by invalid dates like "12/01/19900" -- I suppose the issue could be resolved by finding a better way of handling that null case 
public DateTime? DateOfService { get; set; } 

但是,當我在我看來用這個,

@Html.EditorFor(model => model.Date) 

我得到this,它被傳遞爲null。我已經通過屬性檢查null,因爲編輯器還允許非常無效的日期,如12/12/21390 - 其中通過null

編輯:我正在使用Chrome。

+0

您是否試過'model => model.Date.Value'?或者創建你自己的'DateTime?'編輯器模板https://stackoverflow.com/questions/8580780/editorfor-on-nullable-datetime-nullable-object-must-have-a-value – Jasen

+0

你看到的是一個佔位符,假設你的使用Chrome或Edge及其瀏覽器的HTML-5 datepicker實現。什麼數據註釋適用於您的財產和您使用的瀏覽器 –

+0

@Jasen不要以爲這個問題實際上是相關的。 – Sinjai

回答

0

所有你需要做的就是在html中輸入你想要的格式。我希望它能爲你工作。

@Html.EditorFor(model => model.Date, "{0:dd/MM/yyyy}") 
+0

它已通過屬性具有格式。 [DisplayFormat(DataFormatString =「{0:yyyy-MM-dd}」,ApplyFormatInEditMode = true)]'因爲我記得jQuery需要遵守ISO。實際上並不確定它爲什麼不最終顯示。無論如何,這爲什麼會有影響? – Sinjai

+0

你可以看到https://stackoverflow.com/questions/35944081/date-format-dd-mm-yyyy-not-working-in-asp-net-mvc-5。它可以對你有所幫助。 –

+0

你明白我的問題嗎? – Sinjai

相關問題