Ich versuche, eine Controller-Methode von Javascript aufrufen, und ich habe Probleme, dies korrekt ausgeführt zu bekommen. Ich habe sehr wenig Erfahrung mit Javascript und habe andere Beispiele verfolgt, wie man dies von stackoverflow macht, aber ich habe immer noch einige Probleme - wenn jemand helfen kann, wäre das fantastisch.ASP.NET MVC 5 Aufruf der Controller-Methode aus Javascript Fehler
Im Grunde, was ich versuche, ist ein .Data-Tag auf ein JavaScript-Objekt auf die Zeichenfolge von einer Methode auf dem Controller zurückgegeben (diese Methode ruft einen Webservice, der eine SQL Server-Funktion ausführt). Der Methode muss ein Parameter übergeben werden, der in der Funktion verwendet wird.
ist Der folgende Code:
Javascript-Code
for (var i = 0; i < stats.length; i++)
{
var stat = stats[i].data('id');
var color = CallService(stat);
this.node.fill = color;
}
JQuery Methode
function CallService(id) {
$.ajax({
url: '@Url.Action("CallService", "NodeController")',
type: 'GET',
dataType: 'json',
cache: false,
data: { 'id': id },
success: function (color) {
return color;
},
error: function() {
alert('Error occured');
}
});
}
Controller-Methode
[HttpGet]
public JsonResult CallService(string id)
{
var idNum = Convert.ToInt32(id);
var StationService = new getStationStatus.Service1SoapClient("Service1Soap");
string color = StationService.getStationStatus(idNum);
return Json(color, JsonRequestBehavior.AllowGet);
}
der Controller heißt der NodeController- was ich in URL: Aufruf von AJAX.
Im Grunde, was passiert, wenn ich die Seite ausführen, ich zum ersten Mal einen Fehler sagen, es ist nicht this.node.fill auf einen Nullwert DANN einstellen kann ich die Warnung erhalten, dass ein Fehler occurred- wie ich sagte, ich bin ziemlich unerfahren mit Javascript, also bin ich ehrlich gesagt nicht einmal sicher, ob es die Methode in der richtigen Reihenfolge aufruft, wenn ich einen Fehler auf this.node.fill bekomme, bevor ich die Fehlermeldung von JQuery erhalte.
Alle/alle Hilfe oder Vorschläge wird sehr geschätzt !!!
Grund async Codierungsfehler schreiben: Sie können einen Wert aus der Mitte einer Callback-Funktion (wie 'Erfolg:') zurück, wie die lange geschehen nachdem Ihre Funktion beendet wurde. @Igor hat unten einige richtige Vorschläge. –