使用具有多个参数的http post获取null响应

时间:2018-04-13 01:07:13

标签: http-post angular2-services typescript2.0 asp.net-web-api-routing

我正在使用带有2个参数的http post请求并从服务获取null响应。 下面是我的角度服务的代码片段以及控制器(C#)。

我尝试了两个选项,但它们都没有工作,在这两种情况下都得到了空响应。

看起来参数不是从服务传递的,因此正确的路由不匹配...因为我尝试调试控制器...我没有看到调试器在控制器中击中方法...任何线索,因为我是什么做错了?或者我可以遵循其他任何方法吗?

   Option 1     let params = new URLSearchParams();
        params.append('id',bookId);
        params.append('store',store);

        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });
        let body = JSON.stringify(params);

        return this.http.post(this.apiUrl, body, options)
        .map((res: Response) => res.json())  
        .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 


Option 2
        let myHeaders = new Headers();
        myHeaders.append('Content-Type', 'application/json');    
        let myParams = new URLSearchParams();
        params.append('id',bookId);
        params.append('store',store);
        let options = new RequestOptions({ headers: myHeaders, params: myParams });

        return this.http.post(this.apiUrl, options)
        .map((res: Response) => res.json())  
        .catch((error: any) => Observable.throw(error.json().error || 'Server error'));   


controller code
        [HttpPost]
        [Route("api/book/{id}/{store}")]
        public IHttpActionResult GetByIdPwd(string id, string store)
        {
            var book = bookRepo.GetBookAvailabilityBy(id, store);
            return Ok(book);

        }

0 个答案:

没有答案