2017-05-10 6 views
1

ng2サービスからMVC WebAPIに値をポストしようとしています。値がfalseのときに動作します。値がtrueの場合はポストバックしません。ng2サービスからboolean値を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

可能な複製(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 Web APIをアプリケーションにPOST文字列 - 戻りをnull]の
関連する問題