2017-08-16 5 views
-1

Ich habe Probleme beim Schreiben dieser AJAX-Methode.Wie man JsonResult zurückgibt

Ich möchte eine JsonResult zurückgeben. (Scheint so logisch zu sein.) Alle Beispiele, die ich finden könnte, verwenden Json(), um das Ergebnis in eine JsonResult zu konvertieren.

[HttpPost] 
public JsonResult GetScoreResults(string userId, int chapterId) 
{ 
    return new Json(ChapterScoreResultsModel.Create(DbContext, userId, chapterId)); 
} 

Aber wenn ich versuche dies:

The type or namespace name 'Json' could not be found (are you missing a using directive or an assembly reference?)

Allerdings kann ich dieses Symbol nicht überall finden und alle Artikel, die ich fand, dass es verwendet hat nichts Besonderes zu tun scheinen. Ich habe das Symbol im Namensraum System.Web.Helpers finden, aber wenn ich ein using für die hinzufügen, erhalte ich die Fehlermeldung:

Cannot create an instance of the static class 'Json'

Was ist die aktuelle Weise ein JsonResult von einer AJAX-Methode zurückgeben?

+1

Entfernen 'new' - nur' Rückkehr Json (...) ' –

+1

neues Schlüsselwort ist nicht erforderlich http://www.c-sharpcorner.com/UploadFile/2ed7ae/jsonresult-type-in- mvc/ – Amit

+0

@StephenMuecke: OMG! Ich kann nicht glauben, dass ich das nicht gesehen habe. (Ich hatte das neue hinzugefügt, weil ich ursprünglich 'Json' nicht verwendet hatte. –

Antwort

0

Die Controller-Klasse hat eine Json method. Der Aufruf gibt eine JsonResult zurück. Beachten Sie, dass es sich um eine Methode, nicht um einen Konstruktor handelt. Sie setzen das Schlüsselwort new nicht vor den Methodenaufruf.

return Json(ChapterScoreResultsModel.Create(DbContext, userId, chapterId));