Angular Http请求主体未绑定到.net核心WebAPI基本参数

时间:2019-06-26 04:25:25

标签: angular asp.net-core

我的http请求正文参数没有绑定到我的api。这是我的api,我试图不使用类之类的任何复杂参数直接绑定主体。

public async Task<Object> RejectRequest([FromBody] int RequestId, string 
Reason){
}

这是我的http请求:-

 rejectRequest(data): any {
 var body = JSON.stringify(data);
 const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${localStorage.getItem('token')}`
  }),
  responseType: 'text' as 'text'
 };
 return this.http.post('/api/Dashboard/RejectRequest',body, httpOptions)
}

我的身体要求是:-

{
 "requestid":"45",
 "reason":"dfgsdf"
}

1 个答案:

答案 0 :(得分:2)

问题是,在UI中,您将JSON对象作为主体发送,但是在API中,您将其作为2个不同的参数接收。

如果您要通过ui使用httpParams发送参数,则可以使用[FromQuery]将其绑定到api

因此,您可以在API中添加新模型并更改API方法,如下所示,

public class MyClass
{
     public string RequestId { get; set; }
     public string Reason { get; set; }
}

public async Task<Object> RejectRequest([FromBody]MyClass MyObj){
   //Your code...
}