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:
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?
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:
Und dann in Ihrer Controller-Aktion:
%Vor%, das von einer anderen Domain mit $.getJSON()
:
Tags und Links asp.net-mvc-3 model-binding jsonp