0

私は EF を使用して、匿名型を使用してデータベースにクエリを実行しています。

ここでEFに使用するコード

    public JsonResult OverdueEventsCustom()
    {
        var eventCustomOverdue = _eventCustomRepository.FindOverdueEventsCustom();
        return Json(eventCustomOverdue, JsonRequestBehavior.AllowGet);
    }


    public IQueryable<dynamic> FindOverdueEventsCustom()
    {
        DateTime dateTimeNow = DateTime.UtcNow;
        DateTime dateTomorrow = dateTimeNow.Date.AddDays(1);
        return db.EventCustoms.Where(x => x.DateTimeStart < dateTomorrow)
                    .Select(y => new { y.EventId, y.EventTitle, y.DateTimeStart});
    }

デバッガーを使用して検査すると、プロパティがこの形式になっていることがわかります

Date = {16/08/2012 00:00:00}

JSONの結果は

[{
    "EventId": 1,
    "EventTitle": "Homework Math",
    "DateTimeStart": "\/Date(1345108269310)\/"
}, {
    "EventId": 4,
    "EventTitle": "Homework help with Annie",
    "DateTimeStart": "\/Date(1345108269310)\/"
}, {
    "EventId": 6,
    "EventTitle": "Physic laboratory",
    "DateTimeStart": "\/Date(1345108269310)\/"
}]

この形式のjsonが必要です

"DateTimeStart": "(16/08/2012)"

ここで何が間違っているのか分かりますか? ご協力いただきありがとうございます

関連記事

http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

Microsoft JSON の日付をフォーマットするにはどうすればよいですか?

4

1 に答える 1

1

"\/Date(1345108269310)\/"Date を JavaScript に渡す正しい方法です。私の見方では、ここには 2 つのオプションがあります。

値を日付として明示的に必要としない場合は、きれいに印刷された日付を含む文字列を JSON 変数に渡すことができます。次のようなもの:

DateTimeStart: String.Format("{0: dd-MM-yyyy}", myDate)

javascript で変数 aa 日付を使用する必要がある場合 (計算など)、最も簡潔で読みやすい方法は、日付を必要なきれいに印刷された文字列に変換する javascript 関数を作成することです (私は知りません)。そのような関数が既に存在するかどうかを知っています.作成するのはそれほど難しくありません:

function prettyDate(date) {

    return date.getDate() + "-" + date.getMonth() + "-" + date.getFullYear();

}

読みやすいので、コードビハインドから文字列として渡すことをお勧めします。ただし、表示以外に日付を使用する必要がない場合にのみ機能します。

于 2012-08-16T10:56:46.470 に答える