这是我的服务器端代码
[HttpPut("api/columnInfoData")]
public IActionResult UpdateColumnInfoData([FromBody] KeyValue[] columnInfoList)
{
try
{
_unit.ColumnInfos
.UpdateColumnInfoData(columnInfoList);
_unit.SaveChanges();
return NoContent ();
}
catch (Exception ex)
{
return BadRequest();
}
}
这是我的Angular代码:
updateColumnInfos(_url: string, body) {
return this.http.put(this.baseUrl + _url, body)
//.do(data => console.log('getKeyValues: ' + JSON.stringify(data)))
.map((event: HttpEvent<any>) =>{
console.log(event.type)
})
.catch(this.handleError);
}
这是订阅部分..
updateColumnInfos(){
this._backendService
.updateColumnInfos("api/columnInfoData", this.tempColumnIdList)
.subscribe(success => {
if(success){
}
}, err => this.errorMessage = "failed to update column selection")
//this.reloadTable = false;
}
不幸的是,它没有记录任何内容。当我在C#代码中设置断点时,断点正在被击中。当我通过Postman
提出请求时,我收到204
。
如何检查我的角度代码中的代码?实际上,我希望在成功更新列后重新加载表。
感谢您的帮助
而不是return NoConent()
,我正在返回return Ok("Test...");
,但我的角度代码仍然没有记录任何内容。但是,当我转到浏览器时:F12 > Network tab > Response tab
,我看到Test...
而不是返回字符串Ok("test...")
来创建匿名对象Ok(obj)
,而不是现在它的日志记录。有什么理由吗?
public IActionResult UpdateColumnInfoData([FromBody] KeyValue[] columnInfoList)
{
try
{
_unit.ColumnInfos
.UpdateColumnInfoData(columnInfoList);
_unit.SaveChanges();
//return Ok("test..."); --> I've changed this to ..
var resp = new { resp = "test..." };
return Ok(resp);
}
catch (Exception ex)
{
return BadRequest();
}
}
答案 0 :(得分:1)
根据Angular's documentation,类似下面的内容应该可以解决问题。
i
您可以在自己的开发工具中查找updateColumnInfos(_url: string, body) {
return this.http
.put(this.baseUrl + _url, body, {observe: 'response'})
.subscribe(resp => console.log(resp));
属性,但最有可能resp
将是您正在寻找的内容。