In una delle mie azioni API (PostOrder
) I può consumare un'altra azione nell'API (CancelOrder
). Entrambi restituiscono un JSON formattato ResultOrderDTO
tipo, impostato come un ResponseTypeAttribute
per entrambe le azioni, che assomiglia a questo:Come leggere/analizzare il contenuto da OkNegotiatedContentResult?
public class ResultOrderDTO
{
public int Id { get; set; }
public OrderStatus StatusCode { get; set; }
public string Status { get; set; }
public string Description { get; set; }
public string PaymentCode { get; set; }
public List<string> Issues { get; set; }
}
cosa ho bisogno è la lettura/l'analisi della risposta ResultOrderDTO
da CancelOrder
, in modo che posso usarlo come risposta per PostOrder
. Questo è ciò che il mio codice PostOrder
assomiglia:
// Here I call CancelOrder, another action in the same controller
var cancelResponse = CancelOrder(id, new CancelOrderDTO { Reason = CancelReason.Unpaid });
if (cancelResponse is OkNegotiatedContentResult<ResultOrderDTO>)
{
// Here I need to read the contents of the ResultOrderDTO
}
else if (cancelResponse is InternalServerErrorResult)
{
return ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, new ResultError(ErrorCode.InternalServer)));
}
Quando uso il debugger, posso vedere che il ResultOrderDTO
è lì qualche parte nella risposta (sembra la Content
), come mostrato nella foto qui sotto:
ma cancelResponse.Content
non esiste (o almeno io non hanno accesso ad esso, prima ho lanciato la mia risposta a qualcos'altro) e non ho idea di come leggere/analizzare questo Content
. Qualche idea?
Non posso credere di non averlo provato. Grazie. – Antrim