【问题标题】:Access Modelstate Error - Asp.Net web api identity - Angular 6 - Http Post request访问 Modelstate 错误 - Asp.Net web api 身份 - Angular 6 - Http Post 请求
【发布时间】:2018-07-05 03:25:03
【问题描述】:

我正在发出一个 POST 请求以向 ASP.NET Web API 身份注册新用户详细信息 - 个人用户身份验证帐户,它工作正常,但如果用户名已经存在,它会在它的 ModelState 中返回错误响应正文如下。我想以角度访问该错误到 console.log() 它。

{"Message":"The request is invalid.","ModelState":{"":["Name a@a.a is already taken.","Email 'a@a.a' is already taken."]}}

在 Angular 应用程序中 =>

this.http.post('http://localhost:57310/api/account/register', {password, confirmPassword, email})
.subscribe(data => {console.log(data);this.router.navigate(['/login'])},
(err:HttpErrorResponse)=>console.log(--?--));

我应该用什么来代替 --?--

更新 1:

我试过JSON.stringify(err.error.ModelState),但它提供了

{"":["Name a@a.a is already taken.","Email 'a@a.a' is already taken."]}

但我只想要

"Name a@a.a is already taken.","Email 'a@a.a' is already taken."

【问题讨论】:

    标签: angular asp.net-web-api angular6


    【解决方案1】:

    如果您只对获取错误消息的详细信息感兴趣,请使用:

    console.log(JSON.stringify(err))
    

    查看其属性和值。

    【讨论】:

    • 它打印响应正文的 Message 部分,但我想打印 ModelState 部分
    • 事实上JSON.stringify(err.error.ModelState) 提供{"":["My Error."]} 但我只想要My Error. 部分。
    【解决方案2】:

    如果JSON.stringify(err.error.ModelState) 提供{"":["My Error."]}

    然后JSON.stringify(err.error.ModelState[""]["0"]) 提供My Error.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多