2

Web API からデータを読み取り、フォームに入力しています。Web API に送信すると、次のエラーが発生します。

{"メッセージ":"エラーが発生しました。","ExceptionMessage":"タイプ 'MvcApplication1.Models.ProductSale' のプロパティ 'StartDate' が無効です。[必須] とマークされている値型のプロパティは、[DataMember] でマークする必要があります。 (IsRequired=true)] が必須として認識されるようにするには、[DataContract] で宣言型を、[DataMember(IsRequired=true)] でプロパティを属性付けすることを検討してください。","ExceptionType":"System.InvalidOperationException","StackTrace": " System.Web.Http.Validation.Validators.ErrorModelValidator.Validate(ModelMetadata メタデータ、オブジェクト コンテナー) で\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ShallowValidate(ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー) で\r \n

System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata メタデータ、ValidationContext validationContext) で\r\n System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata メタデータ、ValidationContext validationContext、オブジェクト コンテナー)で \r\n System.Web.Http.ModelBinding.FormatterParameterBinding.<>c_ DisplayClass1.b _0(オブジェクト モデル) \r\n at System.Threading.Tasks.TaskHelpersExtensions.<>c_ DisplayClass49.b _48()\r\n at 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などを使用して解析できますが、どうすればよいですか? これは私を夢中にさせています!

4

2 に答える 2

1

2013-01-31T16:27:18.503XML仕様に従ったXML日付です。

2013-01-31T05:00:00.000ZISO 8601の日付のようです。

どこかでこれは間違っているようです。フォーマッターについて知らなければ、日付で何を行い、どのように変化するかを言うことはできません。

日付形式は、フォーマッターによって異なります。JSON フォーマッタを使用する場合、これは異なる動作をする可能性があります。

于 2013-01-31T17:36:23.087 に答える
0

エラーメッセージに答えがあります。あなたが投稿しているデータに問題はありません。ProductSales の StartDate プロパティに DataMember(IsRequired=true) 属性を設定するだけで、検証を満足させることができます。

于 2013-01-31T17:13:48.757 に答える