2011-01-08 12 views
2

Ich versuche Ajax mit JSON-Modellbindung in MVC3 RC2 zu verwenden und aus irgendeinem Grund die Daten nicht durch die Controller-Aktionsmethode. Es gab andere Posts zu diesem Thema, aber einige beziehen sich auf ältere Versionen von MVC und keiner dieser Posts, die ich gefunden habe, ist an der richtigen Stelle. Da ich neu in JSON, JSON ModelBinding und nicht so gut in jQuery Ajax Calls gewohnt bin, hätte ich leicht etwas verpasst.Json ModelBinding funktioniert nicht von Ajax in MVC3 RC2

Mein Ausgangspunkt war Scott Guthrie Post http://bit.ly/btdFP5 die MVC3 Vorschau im Abschnitt Javascript und AJAX Verbesserungen einzuführen, aber ich bin ziehen Kartendaten aus dem Google-API statt, so meinen Code ist etwas anders:

 var bounds = map.getBounds(); 
     var southWest = bounds.getSouthWest(); 
     var northEast = bounds.getNorthEast(); 

     var mb = { nelat: northEast.lat(), nelng: northEast.lng(), swlat: southWest.lat(), swlng: southWest.lng() }; 

     $.ajax(
      { 
       url: "/home/GetMarkers", 
       type: "post", 
       dataType: "json", 
       data:JSON.stringify(mb), 
       contentTYpe: "application/json; charset=utf-8", 
       success: function (result) { 
       ... 

Die Erfolg Funktion funktioniert alles gut, so habe ich den Code dort aufgehört.

Ich habe eine Klasse in dem Domänenmodell des Projektes für die lat/long-Koordinaten:

Public Class MapBounds 
    Public Property nelat As Double 
    Public Property nelng As Double 
    Public Property swlat As Double 
    Public Property swlng As Double 
End Class 

und die Controller-Aktion:

Function GetMarkers(ByVal mb As MapBounds) As JsonResult 
    Dim objMarkers = ... get relevant data from database 
    Return Json(objMarkers) 
End Function 

die entsandte JSON-Daten über Firebug beobachtet werden (typisch):

{"nelat":51.22959997248028,"nelng":9.811035156249996, 
"swlat":42.190280664203,"swlng":-7.8110351562500036} 

, aber die zurückgegebenen Werte sind die Eigenschaften im MapBounds-Objekt Null. Ich habe verschiedene Varianten der Parameterübergabe ausprobiert, einschließlich der Weitergabe einzelner Werte, aber ohne Erfolg. Die Werte sind entweder Null oder Null.

Phil Haack Post - http://bit.ly/bUl21b - auf JSON zu einer Aktion Methode Argument sendet sagt, dass die JsonValueProviderFactory jetzt Teil von MVC3 ist, aber ich überprüft sowieso zu sehen, dass es vorhanden war (und es ist).

Antwort

2

Sie haben einen Tippfehler in Ihrem contentType-Parameter, der die korrekte Einstellung möglicherweise verhindert. Es sollte contentType und nicht contentTYpe sein.

+0

Lesen Sie den Moment dort. Zeigt einfach, dass dein Gehirn sieht, was es zu sehen erwartet. Vielen Dank. – CrispinH

+0

Es gibt eine [Kampagne, um Stack Overflow zu bereinigen] (http://meta.stackexchange.com/q/167342), indem Sie diese Tippfehler-Fragen entfernen - wir könnten wirklich Ihre Hilfe gebrauchen! Würde es Ihnen etwas ausmachen, ein wenig zu stimmen, indem Sie eine enge Abstimmung über diese Frage treffen? –

+1

Tut mir leid, ich betrachte diese nicht als off-topic Fragen und werde nicht dafür stimmen, sie zu schließen. –

Verwandte Themen