簡體   English   中英

將日期發布到Web API的正確方法?

[英]Correct way to post dates to Web API?

我正在從Web API讀取數據並填充表單。 當我將其提交回Web API時,出現以下錯誤:

{“ Message”:“發生錯誤。”,“ ExceptionMessage”:“類型'MvcApplication1.Models.ProductSale'的屬性'StartDate'無效。標記為[Required]的值類型屬性也必須標記為[DataMember (IsRequired = true)]視為必需。考慮使用[DataContract]聲明類型,並使用[DataMember(IsRequired = true)]屬性。“,” ExceptionType“:” System.InvalidOperationException“,” StackTrace“: “位於System.Web.Http.Validation.Validators.ErrorModelValidator.Validate(模型元數據元數據,對象容器)\\ r \\ n,位於System.Web.Http.Validation.DefaultBodyModelValidator.ShallowValidate(ModelMetadata元數據,ValidationContext validateContext,對象容器)\\ r \\ n
在System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata元數據,ValidationContext validateContext)處\\ r \\ n
在System.Web.Http.ModelBinding.FormatterParameterBinding。<> c_ DisplayClass1.b _0(對象模型)\\ r \\ n在System.Threading.Tasks.TaskHelpersExtensions。<> c_ DisplayClass49.b _48()\\ r \\ n .Threading.Tasks.TaskHelpers.RunSynchronously [TResult](Func`1 func,CancellationToken cancelleToken)“} 1

我的約會來自Web API,名稱為“ 2013-01-31T16:27:18.503”,發回的名稱為“ 2013-01-31T05:00:00.000Z”。 我可以在將有效載荷發送到Web API之前對其進行攔截,並且可以使用諸如http://momentjs.com之類的內容進行解析,但是我該怎么辦? 這真讓我發瘋!

2013-01-31T16:27:18.503是根據XML規范的XML日期。

2013-01-31T05:00:00.000Z似乎是ISO 8601日期。

在某個地方,這似乎是錯誤的。 在不了解格式化程序的情況下,您至今無法完成操作以及如何更改。

日期格式取決於您的格式化程序。 如果您使用JSON格式化程序,則可能會有所不同。

錯誤消息有答案。 您發布的數據沒有任何問題。 只需將DataMember(IsRequired = true)屬性放在ProductSales的StartDate屬性上即可使驗證愉快。

暫無
暫無

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

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