2012-04-02 7 views
12

Ich habe vor kurzem einige Beispiele von Code mit Asp.Net Mvc2 gefunden, die einige Ajax Aufrufe an Aktionen in Controller, die ContentResult zurückgibt.ContentResult vs JsonResult mit Ajax

Ich habe einige Probleme beim Versuch, diese Beispiele in Mvc3 zu konvertieren, ohne den Rückgabetyp der Aktionen zu JsonResult zu ändern.

Kann mir jemand erklären, was ist der Unterschied zwischen ContentResult und JsonResult im Zusammenhang mit Ajax-Aufrufen und in welchen Fällen kann ich das eine oder andere im Kontext von Ajax-Aufrufen verwenden? Ich fand einen guten Beitrag here, der jede Art von Ergebnis im Detail erklärt, aber es ist nicht genug, um meine Frage zu beantworten.

Gibt es bekannte Probleme mit ContentResult und Ajax-Aufrufe in Mvc3?

Vielen Dank.

Antwort

6

Wenn das Ergebnis, das Ihr JavaScript-Code zurückbekommt, ein Stück Inhalt wie HTML ist, sollten Sie ein ContentResult oder ein PartialViewResult zurückgeben (wenn der HTML-Code mit einer Teilansicht formatiert wurde).

Wenn das Ergebnis ein Objekt ist (insbesondere eines, das Sie dann manipulieren möchten), sollte es ein JsonResult sein.

Hier sind einige gute Beispiele mit JSON arbeiten: http://geekswithblogs.net/michelotti/archive/2008/06/28/mvc-json---jsonresult-and-jquery.aspx

Viel Glück!

+0

Wow, danke @Roy Dictus für die schnelle Antwort. In meinem Fall gebe ich eine XML-Zeichenfolge zurück, die direkt der Datenquelle einer FusionChart-Grafik zugewiesen wird. Denkst du, dass in diesem Fall ein JsonResult besser ist als ein ContentResult? – Samuel

+0

Dies ist kein JSON und kein Objekt, das von JavaScript bearbeitet werden kann, daher wäre dies Inhalt. –