2012-04-02 16 views
12

Niedawno znalazłem kilka próbek kodu z Asp.Net Mvc2, który wykonuje niektóre wywołania ajax do działań w kontrolerze, który zwraca ContentResult.ContentResult vs JsonResult z ajaxem

Wystąpiły pewne problemy podczas próby konwersji tych próbek w Mvc3 bez zmiany typu zwrotu działań na JsonResult.

Czy ktoś może mi wyjaśnić, jaka jest różnica między ContentResult i JsonResult w kontekście wywołań ajaxowych iw jakich przypadkach mogę używać jednego lub drugiego w kontekście wywołań ajax? Znalazłem dobry wpis here, który szczegółowo wyjaśnia każdy typ wyniku, ale nie jest wystarczający, aby odpowiedzieć na moje pytanie.

Czy znane są problemy z wywołaniami ContentResult i ajax w Mvc3?

Dziękuję.

Odpowiedz

6

Jeśli wynik otrzymany przez Twój kod JavaScript jest fragmentem treści, na przykład HTML, powinieneś zwrócić ContentResult lub PartialViewResult (jeśli HTML jest sformatowany przy użyciu częściowego widoku).

Jeśli wynikiem jest obiekt (szczególnie taki, który następnie użytkownik chce manipulować), powinien to być JsonResult.

Oto kilka dobrych przykładów pracy z JSON: http://geekswithblogs.net/michelotti/archive/2008/06/28/mvc-json---jsonresult-and-jquery.aspx

Powodzenia!

+0

Wow, dziękuję @Roy Dictus za szybką odpowiedź. W moim przypadku zwracam ciąg xml, który jest używany do przypisania bezpośrednio do źródła danych grafiki FusionChart. Czy uważasz, że w tym przypadku JsonResult jest lepszy niż ContentResult? – Samuel

+0

To nie jest JSON, a nie obiekt obsługiwany przez JavaScript, więc byłby to zawartość. –

Powiązane problemy