【发布时间】:2018-05-29 09:36:41
【问题描述】:
我有 ASP NET Core 2.0 项目。对于客户端,我使用 Angular 4。我尝试在客户端实现 api 请求句柄。
所以,在我的控制器中,我有
public IActionResult AddWorkSchedule(int employeeId, [FromBody] WorkScheduleBaseRequest request)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok();
}
所以,我正在等待在客户端获取错误数组,但我将其作为文本获取。
我在 agular 4 中使用 net httpClient 并像这样调用 api
addWorkSchedule(employeeId: number, workSchedule: WorkSchedule): Promise<any> {
return this.http
.post('/api/employee/' + employeeId + '/workschedule/', workSchedule, { observe: 'response', responseType: 'json' })
.toPromise();
}
并以这种方式在我的组件中处理它
this.employeeService
.addWorkSchedule(this.employee.employeeId, workSchedule).then(
(success) => {
console.log(success);
},
(error: HttpErrorResponse) => {
console.log(error);
console.log(error.error);
});
我的问题是为什么 'error' 属性是文本,而不是数组,而错误响应,我该怎么做才能让它像数组一样?
提前致谢。
【问题讨论】:
-
但您返回的是 badrequest 而不是一系列错误。答案就在你的回报中。错误文本来自您的 API 验证
-
即使我以这种方式返回响应 "return StatusCode(StatusCodes.Status400BadRequest, new[] {"error1", "error2"})" - 我没有数组
-
是的,那是因为您正在返回状态码,要返回错误,您应该在您的操作中返回一个数组,并将其作为 json 在您的 web/angular 中读取,就像您读取任何请求/响应一样从假设数据库
标签: angular asp.net-core angular4-httpclient