2016-10-06 9 views
0

angularJS 서비스가 포함 된 웹 API를 호출합니다. 내가 매개 변수를 전달했을 때AngularJS를 사용하는 매개 변수가있는 Web ApI 메서드 호출

내 WebP 형식의 API 방식은 웹 API 방법은 발사되지 않으며, 매개 변수 '/api/Subpart/'

없이 잘 작동합니다.

각도 서비스

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

웹 API 컨트롤러 액션

[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

http://www.w3schools.com/jsref/jsref_encodeuri.asp

. 브라우저에서 매개 변수로 호출 할 수 있습니까? 'val'이 유효한 비어 있지 않은/널이 아닌/정의되지 않은 유효한 문자열 값을 가지고 있습니까? 또한 'without parameters'/ api/Subpart/'는 무엇을 의미합니까? 이것은 매개 변수가 아닌 경로이며,이 매개 변수없이 메서드를 호출 할 수 없으므로 매개 변수가 없으면 제대로 작동한다는 것을 의미합니까? – Igor

+0

Ohh 매우 이상합니다. 그것의 작업, 내가 api/Subpart/abc '로 내 api URL을 전달할 때 –

+0

각도 서비스는 웹 API가 호스팅되는 것과 동일한 웹 사이트에서 실행되고 있습니까? 그렇지 않으면 전체 호스트 주소도 제공해야합니다. – Igor

답변

0

나는 solution.It과 함께 패스 매개 변수가 있나요?

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

안녕하세요, 내 웹 APi 방법은 발사입니다 http로 내 매개 변수를 전달//localhost/api/Subpart/sub_part?1301.2(b) 그러나 'sub_part'로 오는 1301.2 (b) 값 대신? –

+0

실제 값이 웹 API 방법으로 제공되지 않는 이유는 무엇입니까? –

0

값을 "벗어나"보십시오.

당신이 시도 다른 무엇
this.getSubparts = function (val) { 
      var subUrl = "http://localhost/api/Subpart/?subpart="+ encodeURI(val); 
      return $http.get(subUrl); 
     }; 
+0

비 사용 중지 방법을 사용하여이 파일을 편집했습니다. – granadaCoder