2016-10-06 7 views
0

Ich rufe eine Web-API mit angularJS-Service an.Aufruf einer Web-API-Methode mit Parametern unter Verwendung von AngularJS

Meine webp API-Methode funktioniert gut ohne Parameter '/api/Subpart/'

Wenn ich Parameter übergeben wollte, Web-API-Methode wird nicht ausgelöst.

Angular Service

.service('subpartService', ['$http', function ($http) { 
    this.getSubparts = function (val) { 
     return $http.get('/api/Subpart/'+val); // With parameters not working 
    }; 
}]) 

Web-API-Controller Aktion

[Route("api/Subpart/{strsubpart}")] 
public List<tbl_Employee> GetSubparts(string strsubpart) 
{ 
    Entities db = new Entities(); 
    var data = db.tbl_Regulation.Where(c => c.Subsection == "ABC"); 
    return data.ToList(); 
} 
+1

Was Sie versucht haben. Kannst du es mit einem Parameter von deinem Browser aufrufen? Sind Sie sicher, dass "val" einen gültigen nicht leeren/nicht null/nicht undefinierten Stringwert hat? Was bedeutet 'ohne Parameter '/ api/Subpart /'? Dies ist eine Route und kein Parameter, man kann die Methode nicht ohne es nennen, also was meinst du, es funktionierte ohne es gut? – Igor

+0

Ohh sehr seltsam. Es funktioniert, wenn ich meine API-URL als 'api/Subpart/abc' übergebe –

+0

Läuft der eckige Dienst auf der gleichen Website, auf der auch die Web-API gehostet wird? Wenn nicht, müssen Sie auch die vollständige Host-Adresse angeben. – Igor

Antwort

0

Ich habe die solution.It Pass Parameter hat?

this.getSubparts = function (val) { 
      var subUrl = "http://localhost/api/Subpart/sub_part?subpart="+ val; 
      return $http.get(subUrl); 
     }; 
+0

Hallo, meine Web APi-Methode wird ausgelöst, wenn ich meine Parameter als http übergeben://localhost/api/Subpart/sub_part?1301.2(b) Aber statt 1301.2 (b) Wert kommt als 'sub_part'? –

+0

Warum wird der tatsächliche Wert in der Web-API-Methode nicht angezeigt? –

Verwandte Themen