如何在MVC中调用WebAPI方法并将json对象发送给它

本文关键字:对象 json 方法 MVC WebAPI 调用 | 更新日期: 2023-09-27 17:58:32

我需要在MVC控制器中调用这个方法,并以json格式传递UpdateRequest对象。我该怎么做?

    [HttpPost]
    [Route("updatecertificate")]
    public void updatecertificate([FromBody] UpdateRequest certificatereviewed)
    {
       loansRepository.updatecertificate(certificatereviewed.Id, certificatereviewed.CertificateReview);
    }

这就是输入类:

 public class UpdateRequest {
    public int Id { get; set; }
    public bool CertificateReview { get; set;}
}

这就是我调用和发送单独变量的方式,但现在我喜欢以json格式发送类对象。

  private async Task UpdateFundingCertificateReviewed(int id, bool fundingCertificateReviewed)
    {
        await httpClient.PostAsync(string.Format("{0}/{1}", LoanApiBaseUrlValue, updatecertificate),null);
    }

如何在MVC中调用WebAPI方法并将json对象发送给它

我个人喜欢Newtonsoft.Json序列化对象。

private async Task UpdateFundingCertificateReviewed
        (int id, bool fundingCertificateReviewed)
{
    using (var client = new HttpClient())
    {
        var url = string.Format("{0}/{1}", LoanApiBaseUrlValue, updatecertificate);
        var updateRequest = new UpdateRequest { Id = 1, CertificateReview = true};
        var data = JsonConvert.SerializeObject(updateRequest);
        await client.PostAsync(url, data);
    }
}

仅供参考:不返回的异步不是一个好的做法。然而,这是不可能的。

如果您想将对象转换为JSON字符串,请参阅以下问题:在.NET4中将C#对象转换为JSON字符串var json = new JavaScriptSerializer().Serialize(obj);

这就是您所追求的,还是您想知道如何在主体中构造带有JSON对象的http请求?

您的问题不是很清楚,您期望的结果是什么?如果您想POST带有JSON主体的请求,您可以查看@Win注释,然而,如果你想从Api到MVC项目做出响应,你应该多做一些艰难的步骤。:)