在Angular 5之后正确获取BadRequest消息

时间:2018-04-03 15:57:13

标签: angular asp.net-web-api

我在控制器中使用c#进行验证,如:

 if (user == null)
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return BadRequest(ModelState);
                }

在Angular中,我尝试接收它:

signin() {
    this.loading = true;

    this._authService.login(this.model.email, this.model.password).subscribe(
      data => {
        this._router.navigate([this.returnUrl]);
      },
      error => {
        this.showAlert('alertSignin');
        this._alertService.error(error._body);
        this.loading = false;
      });
  }

但是error_.body带有外部格式:

"{"":["Invalid login attempt."]}"

为什么我只能得到它的文字?像:

Invalid login attempt.

此致

1 个答案:

答案 0 :(得分:2)

如果您只需要文字,请不要使用ModelState。使用

if (user == null)
{    
   return BadRequest("Invalid login attempt.");
}