最初は機能しましたが、今日は失敗しました。
これは私が日付プロパティを定義する方法です:
[Display(Name = "Date")]
[Required(ErrorMessage = "Date of Submission is required.")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime TripDate { get; set; }
過去に機能してきました。しかし、今日、同じApiControllerアクションを呼び出すと:
[HttpPost]
public HttpResponseMessage SaveNewReport(TripLeaderReportInputModel model)
Firebugのレポート:
ExceptionMessage:
"Property 'TripDate' on type 'Whitewater.ViewModels.Report.TripLeaderReportInputModel'
is invalid. Value-typed properties marked as [Required] must also be marked with
[DataMember(IsRequired=true)] to be recognized as required. Consider attributing the
declaring type with [DataContract] and the property with [DataMember(IsRequired=true)]."
ExceptionType
"System.InvalidOperationException"
どうしたの?それらはの[DataContract]
ためではありませんWCF
か?私はで使用してREST WebAPI
いMVC4
ます!
誰か助けてもらえますか?お願いします?
- -アップデート - -
私が見つけたいくつかの同様のリンクがあります。
MvC 4.0 RTMは私たちを壊しました、そして私たちはそれを修正する方法を知りませんRSS
---再度更新します---
HTTP応答ヘッダーは次のとおりです。
Cache-Control no-cache
Connection Close
Content-Length 1846
Content-Type application/json; charset=utf-8
Date Thu, 06 Sep 2012 17:48:15 GMT
Expires -1
Pragma no-cache
Server ASP.NET Development Server/10.0.0.0
X-AspNet-Version 4.0.30319
リクエストヘッダー:
Accept */*
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Cache-Control no-cache
Connection keep-alive
Content-Length 380
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Cookie .ASPXAUTH=1FF35BD017B199BE629A2408B2A3DFCD4625F9E75D0C58BBD0D128D18FFDB8DA3CDCB484C80176A74C79BB001A20201C6FB9B566FEE09B1CF1D8EA128A67FCA6ABCE53BB7D80B634A407F9CE2BE436BDE3DCDC2C3E33AAA2B4670A0F04DAD13A57A7ABF600FA80C417B67C53BE3F4D0EACE5EB125BD832037E392D4ED4242CF6
DNT 1
Host localhost:39019
Pragma no-cache
Referer http://localhost:39019/Report/TripLeader
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0
X-Requested-With XMLHttpRequest
- - アップデート - -
私はその場しのぎの解決策を見つけました。以下の回答を参照してください。なぜそれが機能するのか、またはより良い解決策があるのかを誰かが理解している場合は、回答を投稿してください。ありがとうございました。