0

データをクライアントにプッシュするために、信号機とともにasp.netWebAPIを実装しました。

ペイロードは、Asp.NetWebAPIのsignalRを介してブラウザにDateTime値をプッシュすることで構成されます。

問題は、ブラウザでデータを受信するときに、ISO形式(2012-12-04T19:30:18)で日付を取得しているのに、microsoftdate形式(「\ date(...)」)のデータが必要な場合です。

これを機能させるために、asp.netwebapiのglobal.asaxのapplication_startイベントをフォローしてみました。

    var json =config.Formatters.JsonFormatter;
        json.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;

ただし、日付は「2012-12-04T19:30:18」のままです。

何か案が?

4

2 に答える 2

4

SignalR 1.0以降では、次のようなカスタム設定を使用して、アプリの開始時に独自のJsonNetSerializerを登録できます。

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
using Newtonsoft.Json;

namespace MyApp
{
    public class Global : HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            var settings = new JsonSerializerSettings();
            settings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
            var serializer = new JsonNetSerializer(settings);

            GlobalHost.DependencyResolver.Register(typeof(IJsonSerializer), () => serializer);
        }
    }
}
于 2012-12-04T23:30:36.460 に答える
0

私はあなたが直面している問題を完全には追跡していませんでしたが、現在のDateTimeをサーバーからクライアントに渡してそれを読み取ろうとしていると思いますか?

その場合は、次の方法で送信/解析できます(シリアル化を変更する必要はありません): SignalR日時形式

これは、DateTImeを読み取るJavaScriptの方法です。

于 2012-12-04T23:20:11.190 に答える