2016-08-19 1 views
0

Ich habe eine WebService's Methode, kehrt boolean:WebService-Methode gibt "undefined" zurück zu Javascript, auch wenn es einen Wert zurückgeben sollte

[WebMethod(EnableSession = true), ScriptMethod(UseHttpGet = true)] 
public bool StartMonitoring() 
{ 
    return Schedule.StartMonitoring(); 
} 

Das ist Methode Schedule Klasse:

public static bool StartMonitoring() 
{ 
    return true; 
} 

Diese Anruf ist JavaScript's Service:

var success = false; 
success = myself.get_Service().StartMonitoring(); 
alert(success); 

Wenn das Popup angezeigt wird, erscheint "undefined" statt true

Was fehlt mir?

+0

Was 'myself' zu beziehen ist? – Pat

+0

Was passiert, wenn Sie 'true' direkt von' StartMonitoring' zurückgeben: 'public bool StartMonitoring() {return true; } '- nur um zu sehen, ob du tatsächlich irgendeinen Wert zurückbekommst. – ishmaelMakitla

+0

Ich nehme an, get__Service oder StartMonitoring ist der Dienst, über den Sie gesprochen haben. Da ein Dienst asynchron ist, können Sie nicht erwarten, dass der Erfolg wahr ist. Verwenden Sie asynchrouns Ansatz wie Callback. – afmeva

Antwort

1

nicht sicher, welche AJAX-Proxy-Technologie, die Sie verwenden, aber ich bin mir ziemlich sicher, dass Sie einen Rückruf benötigen, so dass Ihr JS-Code sollte wie folgt aussehen:

myself.get_Service().StartMonitoring(myCallback); 

function myCallback(result) 
{ 
    alert(result); 
} 
Verwandte Themen