如何在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);
}
我个人喜欢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项目做出响应,你应该多做一些艰难的步骤。:)