[英]What determines the DateTime.Kind when ASP.Net receives a posted model with a DateTime property?
我們有許多 Vue 頁面,帶有 Typescript 模型,它們提交到相同的 controller 操作。 controller 采用單個復雜參數,而 class 具有 DateTime 屬性。
Vue 頁面已經隨着時間的推移進行了修改,現在看起來彼此完全不同。 但是,在所有情況下,DateTime 屬性都取自 inputDateOfBirth 字段並與 Moment 進行映射。 代碼看起來有點像這樣:
var dob = Helpers.ToMoment(this.inputDateOfBirth);
if (dob.isValid()) {
this.dateOfBirth = dob.format("YYYY-MM-DD HH:mm:ss");
}
dateOfBirth
和inputDateOfBirth
在 Typescript model 中都列為類型string
。
在大多數情況下,最終由 controller 操作接收的復雜參數具有此 DateTime 屬性作為DateTime.Kind
of Utc
。 然而,其中一個有一個DateTime.Kind
的Unspecified
。 這會導致進一步的問題。
是什么決定了由 C# controller 操作在 ASP.NET MVC 中解釋的數據的 DateTime.Kind 值,我可以做些什么來確保它被一致地接收為 Utc?
日期格式可能會導致這種差異。
DateTime 的默認 model 活頁夾需要ISO 8601 Time zone designators
,這意味着如果您的日期字符串看起來像這樣2009-06-15T13:45:30.0000000Z
,那么DateTime.Kind
將是UTC
,如“Z”所示。
或者,如果像這樣2009-06-15T13:45:30.0000000-07:00
出現時區偏移“-07:00”,則DateTime.Kind
將是Local
。
如果沒有提供這些屬性,則DateTime.Kind
將是Unspecified
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.