2017-03-23 4 views
2

Ich habe bei dieser seit einiger Zeit fest. Ich versuche, einen Bool von meinem Controller zur Ansicht durch Ajax zu schicken. Ich habe mehrere verschiedene Tutorials und Methoden ausprobiert, kann aber scheinbar keine einfachen Daten abrufen. Ich habe gehofft, dass jemand erklären kann, was ich falsch mache.AJAX und C# mvc Controller bekommen bool

Hier ist mein Code:

Ajax:

$(document).ready(function() { 

$.ajax({ 
    "url": "/social/checkfollow", 
    "type": "GET", 
    "dataType": "json", 
    "success":function(data) { 

     console.log(data); 
    }, 
    "error": function(data) { 
     console.log(data.status +" "+ data.statusText); 
    } 
}); 

}); 

Und der Controller:

[HttpGet] 
    public virtual ActionResult CheckFollow() 
    { 
     var pass = false; 

     return Json(new {result = pass}); 
    } 

Aus irgendeinem Grund, den ich 500 Interner Service-Fehler immer halten. Ich weiß, dass es eine wirklich grundlegende Frage ist, und ich würde deine Hilfe wirklich schätzen.

+0

entfernen „datatype“: „json“, dann – Usman

+0

versuche ich habe nur noch der gleiche Fehler aufkommt ... – Mipod

+0

Sind Sie sicher, dass die URL korrekt ist? Wenn Sie die MVC-Anwendung debuggen und der CheckFollow-Methode einen Haltepunkt hinzufügen. Hörst du da auf? – Tacud

Antwort

6

sollte Ihre return-Anweisung wahrscheinlich sein:

return Json(new {result = pass}, JsonRequestBehavior.AllowGet); 

Einschlägige Erklärung der AllowGet: Why is JsonRequestBehavior needed?

+0

danke das hat es gelöst. und danke für die Erklärung – Mipod

2

Return-Anweisung nicht richtig für Pass json, so habe ich Beispielcode hinzufügen, so versuchen Sie es und lassen Sie mich wissen jede Problem.

[HttpGet] 
public virtual ActionResult CheckFollow() 
{ 
    var pass = false; 

    return Json(new {result = pass}, JsonRequestBehavior.AllowGet); 
}