2017-05-10 37 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,它会正确发送参数。 enter image description here

然而,如果该值是true,它不发出任何东西,即使我能看到true,在控制台中。 enter image description here

请问我可以如何将这个布尔值正确地发送到我的MVC Webapi?

+0

[POST字符串的ASP.NET Web API应用程序 - 返回null]的可能的复制(http://stackoverflow.com/questions/13771032/post-string-to-asp-net-web-api-应用程序返回空) – 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')); 
}); 
相关问题