如何将ng2服务的布尔值发布到MVC WebAPI

时间:2017-05-10 09:09:20

标签: angular angular2-forms angular2-services

我正在尝试将值从ng2服务发布到我的MVC WebAPI。当值为false时,它可以工作。当值为true时,它不会回发。

我的服务。

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?

1 个答案:

答案 0 :(得分: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'));
});