Mis parámetros del cuerpo de la solicitud HTTP angular no son vinculantes a mi API. Esta es mi API, que estoy tratando de unir el cuerpo directamente sin usar cualquier parámetro complejo como clase.

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

Esta es mi solicitud HTTP angular: -

 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)
}

Mi solicitud de cuerpo es: -

{
 "requestid":"45",
 "reason":"dfgsdf"
}
0
Ameer Pappay 26 jun. 2019 a las 07:25

1 respuesta

La mejor respuesta

El problema es que, desde la UI que envía un objeto JSON como cuerpo, pero en API lo recibe como 2 parámetros diferentes.

Si está enviando parámetros utilizando HTTPPARAMS desde UI, puede unirlo a API usando [fromquery]

Por lo tanto, aquí puede agregar un nuevo modelo en API y cambiar su método API como se muestra a continuación,

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

public async Task<Object> RejectRequest([FromBody]MyClass MyObj){
   //Your code...
}
2
Chandan Y S 26 jun. 2019 a las 05:18