0

ASP.NET MVC APIサイトがあり、モデルの1つにDateTimeが必要ですが、何をしても、有効なモデルとして送信したデータを受け入れません。

私は試しました

{"Owner":"s083151","Permissions":"public","Name":"SomeRandomMeeting","Begin":"2013-03-28T13:00:00.2124557+01:00","End":"2013-03-28T17:00:00.2124557+01:00","Url":"MyRandomUrl"}

{"Owner":"s083151","Permissions":"public","Name":"SomeRandomMeeting","Begin":Date(1364234400),"End":Date(1364248800),"Url":"MyRandomUrl"}

{"Owner":"s083151","Permissions":"public","Name":"SomeRandomMeeting","Begin":1364234400,"End":1364248800,"Url":"MyRandomUrl"}

{"Owner":"s083151","Permissions":"public","Name":"SomeRandomMeeting","Begin":"1364234400","End":"1364248800","Url":"MyRandomUrl"}

しかし、どれもModel.IsValidとして受け入れられません、何が間違っているのですか?

私はフィドラーを使用してリクエストをテストします。ここにリクエストヘッダーがあります

User-Agent: Fiddler
Content-Type: application/json

データモデル

[DataContract]
public class MeetingModel
{
    [Required]
    [StringLength(500)]
    public string Owner { get; set; }

    [Required]
    public string Permissions { get; set; }

    [Required]
    [StringLength(500)]
    public string Name { get; set; }

    [Required]
    public DateTime Begin { get; set; }

    [Required]
    public DateTime End { get; set; }

    [Required]
    [StringLength(75)]
    public string Url { get; set; }

    public string MeetingId { get; set; }

    public TimeSpan Duration { get; set; }

    public List<UserModel> Hosts { get; set; }

    public List<UserModel> Participants { get; set; }
}
4

3 に答える 3

3

日付フィールドをこのようにスラッシュの間に置くと、次のようになりました。

{"Owner":"s083151",
 "Permissions":"public",
 "Name":"SomeRandomMeeting",
 "Begin":"/Date(1364234400)/",
 "End":"/Date(1364248800)/",
 "Url":"MyRandomUrl"}

C#コードを使用してJSONを生成する場合は、スケープバックスラッシュを追加するように注意してください。

"\/Date(1364234400)\/"
于 2013-03-21T12:02:13.003 に答える
1

日付が原因ではなく、タイプミスが原因のようですPermissions。クラスには(複数の)プロパティがありますがPermission、JSON には(単数)があります。

日付形式については、Scott Hanselman が投稿していて、デフォルトの JSON モデル バインダーが理解できる形式は "2013-03-21T00:00:00" のように見えます ( ISOの一部のようです)。 8601 標準)。

于 2013-03-21T11:38:55.307 に答える
1

http://james.newtonking.com/projects/json/help/index.html?topic=html/DatesInJSON.htmによると、JSON 標準は "2012-03-19T07:22Z" です。それを試していただけますか?

編集: コードの一部で GET を試したところ、"OrderTime":"2013-03-21T12:58:15.053" が得られました。

于 2013-03-21T11:55:17.417 に答える