2017-05-10 3 views
1

ng2 서비스의 값을 MVC WebAPI에 게시하려고합니다. 값이 false 일 때 작동합니다. 값이 true 일 때 다시 게시되지 않습니다.ng2 서비스의 부울 값을 MVC WebAPI에 게시하는 방법

내 service.ts

EnrolStudent(HasCriminal: boolean): Observable<number> { 

     console.log(HasCriminal); 

     return this.http.post('/api/student/enrolstudent', HasCriminal).map(result => { 
      return result.json() as number; 
     }).catch(error => { 
      console.log(error); 
      return Observable.throw(new Error('Error occured in calling EnrolStudent service')); 
     }); 

    } 

위의 코드에서, 내가 추적하고 명확하게 HasCriminal이 참/콘솔에서 거짓 인 것을 알 수있다.

값이 false이면 올바르게 전달됩니다. 값이 true 인 경우 I 콘솔에서, true를 볼 수 있지만 enter image description here

그러나, 그것은 아무것도 보내지 않습니다. enter image description here

내 MVC Webapi에이 부울 값을 올바르게 보낼 수있는 방법을 제안 해 주시겠습니까?

+0

가능한 중복 (http://stackoverflow.com/questions/13771032/post-string-to-asp-net-web-api- application-returns-null) – Igor

답변

0

단일 프리미티브 값의 경우 URL 인코딩을 사용해야합니다. 또는 클라이언트 측과 서버 측에서 객체로 래핑 할 수도 있습니다. 여기서 서버 코드를 변경하지 않으려는 경우 클라이언트 코드를 수정해야합니다.

const options = { 
    headers: new Headers({ 'content-type':'application/x-www-form-urlencoded'}) 
} as RequestOptionsArgs; 
const data = '=' + HasCriminal.toString(); 

return this.http.post('/api/student/enrolstudent', data, options).map((result: Response) => { 
    return result.json() as number; 
}).catch(error => { 
    console.log(error); 
    return Observable.throw(new Error('Error occured in calling EnrolStudent service')); 
}); 
[ASP.NET 웹 API 응용 프로그램에 POST 문자열 - 반환 널 (null)]의