我正在做一个必须填写表格的项目。进行更改后,我可以准确地从数据库获取所有必需的数据,我必须将其保存在数据库中。代码未在Asp.Net Web Api中达到所需的控制器和方法,但在前端正常工作。这里也没有错误显示。请让我知道我该怎么办。我所缺少的。我真的很担心
这是我必须打的Api路径
getlandingGatepassvalueByparameter(itemOrder:any){
let url="http://localhost:50366/api/CustomerOrder/SaveOrder"
return this._restService.Post(url,itemOrder);
}
我的Post方法中的下一个
Post(url: string, data: any): Observable<any[]> {debugger;
let headers = new Headers({
'Content-Type': 'application/json',
'Authorization': 'Bearer '
});
let options = new RequestOptions({ headers: headers });
return this._http.post(url, data,options)
.map((response) => {
debugger;
return response.json();
})
.catch(e => {
debugger;
return Observable.throw(e);
});
}
}
下面是控制器方法,我必须点击控制器名称为CustomerOrder
[System.Web.Http.HttpPost]
public IHttpActionResult SaveOrder(List<ItemOrder> itemOrder)
{
string result = null;
//result = _customerOrder.SaveOrder(itemOrder);
if (result != null)
{
return Ok(result);
}
else
{
return null; ;
}
}
答案 0 :(得分:1)
您现有的代码应该可以工作,但是您需要逐步尝试以找出问题所在。
您可以尝试使用Promise
:
所以您的发布方法将类似于:
Post(url: string, data: any): Promise <any> {
let headers = new Headers({
'Content-Type': 'application/json'
});
return this._http.post(url, JSON.stringify(data), { headers: headers })
.toPromise()
.catch(this.handleError);
}
// to handle the error
private handleError(error: any): Promise<any> {
return Promise.reject(error.message || error);
}
答案 1 :(得分:0)
1)在控制器方法中添加[FromBody]:
public IHttpActionResult SaveOrder([FromBody] List<ItemOrder> itemOrder)
2)通过json.stringify转换对象进行调用
getlandingGatepassvalueByparameter(itemOrder:any){
let url="http://localhost:50366/api/CustomerOrder/SaveOrder"
return this._restService.Post(url,JSON.stringify(itemOrder));
}
3)确保在api应用程序中正确配置了路由。
答案 2 :(得分:0)
尝试重新格式化请求对象。现在,它是一个数组。尝试使其成为包含数组类型属性的对象。
控制器动作签名
public IHttpActionResult SaveOrder([FromBody] LargeOrder itemOrder)
{}
public class LargeOrder
{
public List<ItemOrder> itemOrders {get; set;}
}
角度代码:
getlandingGatepassvalueByparameter(itemOrder:any){
let url="http://localhost:50366/api/CustomerOrder/SaveOrder"
return this._restService.Post(url,JSON.stringify({"itemOrders":itemOrder}));
}