【发布时间】:2013-01-15 20:24:17
【问题描述】:
我正在从 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 at System.Web.Http.Validation.DefaultBodyModelValidator.ShallowValidate(ModelMetadata 元数据、ValidationContext 验证上下文、对象容器)\r\n
在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(模型元数据 元数据,ValidationContext 验证上下文)\r\n 在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata 元数据、ValidationContext 验证上下文、对象容器)\r\n
在 System.Web.Http.ModelBinding.FormatterParameterBinding.c_DisplayClass1.b_0(Object 型号)\r\n 在 System.Threading.Tasks.TaskHelpersExtensions.c_DisplayClass49.b_48()\r\n 在 System.Threading.Tasks.TaskHelpers.RunSynchronously [TResult](Func`1 func, CancellationToken cancelToken)"} 1
我的日期以“2013-01-31T16:27:18.503”的形式出现在 Web API 中,并以“2013-01-31T05:00:00.000Z”的形式发回。我可以在发送到 Web API 之前拦截有效负载,并且可以使用 http://momentjs.com 之类的东西来解析它,但我该怎么办?这让我发疯了!
【问题讨论】:
-
如果您正在寻找解决方案 - 尝试在类级别应用 [DataContract] 属性以及在属性上应用 [DataMember(IsRequired=true)]。另请参阅这两个问题:stackoverflow.com/questions/12234582/…、stackoverflow.com/questions/14079049/…
标签: asp.net-mvc json parsing datetime asp.net-web-api