2016-06-29 4 views
2

I gesetzt JsConfig in Application_Start Methode in meinem asp net mvc AnwendungServiceStack.Text gesetzt JsConfig auf Anwendung starten

protected void Application_Start() 
     { 
      JsConfig.DateHandler = JsonDateHandler.ISO8601; 
      JsConfig.EmitCamelCaseNames = true; 
     } 

und dann habe ich Erweiterungsmethode toJSON in meinem Service-Methode verwenden möchten, zum Beispiel

public string testMethod{ 
    //here code 
    var obj = new TestObj{ 
     Id = 1, 
     CurrentDate = DateTime.Now 
    } 
    return obj.ToJson(); 
} 

und dann sehe ich ein Ergebnis, und ich sehe, dass json Ergebnis in Pascal und Datumsformat in folgenden Date(123455678990), aber bevor stellte ich in Config für den Camelcase und utc Format Datum

aber ich set config in meiner Service-Methode, zum Beispiel:

public string testMethod{ 
    //here code 
JsConfig.DateHandler = JsonDateHandler.ISO8601; 
      JsConfig.EmitCamelCaseNames = true; 
    var obj = new TestObj{ 
     Id = 1, 
     CurrentDate = DateTime.Now 
    } 
    return obj.ToJson(); 
} 

ich das Ergebnis bekommen, dass ich beim Start meiner Anwendung

Ist es möglich, setzen JsConfig Eigenschaften will?

Antwort

2

Wenn Sie in Ihrem Global.asax die JsConfig-Eigenschaften auf Application_Start() festlegen, wird die globale Konfiguration für Ihre JSON-Serialisierungspräferenzen wie erwartet festgelegt.

Ich habe ein Beispiel dafür in einem Test MVC-Projekt in this commit hinzugefügt, die wie erwartet funktioniert, die statische JsConfig Konfiguration in Application_Start() setzt:

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     JsConfig.DateHandler = DateHandler.ISO8601; 
     JsConfig.EmitCamelCaseNames = true; 
     //... 
    } 
} 

und serialisiert JSON in einem Controller:

return new HomeViewModel 
{ 
    Name = name, 
    Json = new TestObj { Id = 1, CurrentDate = DateTime.Now }.ToJson() 
}; 

Welche wie erwartet serialisiert:

{"id":1,"currentDate":"2016-06-29T11:56:45.7517089-04:00"} 
+0

oh, danke so viel! Ich habe Ihr Beispiel verstanden, danke Ich werde nach Fehlern in meinem Code suchen – netwer

Verwandte Themen