ASP.NET MVC 3 JSONP: Funktioniert das mit JsonValueProviderFactory?

7

Phil Haack hat eine ausgezeichnete Blogpost zur Verwendung von JSON, Datenbindung und Datenvalidierung.

Geben Sie die Sicherheitsrichtlinie "Sicherheitsrichtlinie für gleiche Herkunft" des Browsers ein. und JSONP, wo Sie $ .getJSON () verwenden, um den Inhalt abzurufen.

Gibt es eine eingebaute MVC 3-Möglichkeit, oder muss ich den Ratschlägen von Posts folgen? so? ? Können Sie Inhalte posten? Ich frage, weil mein Kollege unter anderem ein JsonPfilterAttribute implementiert hat, damit das funktioniert. Es ist offensichtlich vorzuziehen, dies zu vermeiden, wenn in MVC 3 bereits etwas vorhanden ist.

Bearbeiten:

Zusammenfassung: Alles funktioniert mit Ausnahme des Zugriffs auf eine Variable POST , dh wie greife ich auf die Variable POST im Kontext zu? (Kommentar markiert sie im letzten Abschnitt des Codes )

Ich habe gewählt, dieses Format zu verwenden, um den Server anzurufen:

%Vor%

Was diese Antwort erzeugt:

%Vor%

Und das alles funktioniert sehr gut, wenn ich GET verwende. Ich kann dies jedoch immer noch nicht als POST ausführen. Hier ist der Originalcode von Nathan Bridgewater hier . Diese Zeile findet die POST-Daten nicht:

%Vor%

Entweder sollte ich irgendwie auf Form zugreifen, oder die MVC-Datenvalidatoren entfernen die POST-Variablen.

Wie sollte context.HttpContext.Request["callback"]; geschrieben werden, um auf die Variable POST zugreifen zu können, oder wird MVC diese Werte aus irgendeinem Grund entfernen?

%Vor%     
Zachary Scott 25.01.2011, 15:19
quelle

1 Antwort

39

Was den Erhalt eines JSON-Strings und die Bindung an ein Modell betrifft, erledigt der JsonValueProviderFactory diesen Job standardmäßig in ASP.NET MVC 3. Aber es gibt keine eingebaute Funktion für die Ausgabe von JSONP. Sie könnten eine benutzerdefinierte JsonpResult schreiben:

%Vor%

Und dann in Ihrer Controller-Aktion:

%Vor%

, das von einer anderen Domain mit $.getJSON() :

konsumiert werden könnte %Vor%     
Darin Dimitrov 25.01.2011, 17:55
quelle