我需要在MVC控制器中调用此方法,并将UpdateRequest对象作为json格式传递。我怎么能这样做?
[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);
}
答案 0 :(得分:0)
如果要将对象转换为JSON字符串,请参阅以下问题:Turn C# object into a JSON string in .NET 4
var json = new JavaScriptSerializer().Serialize(obj);
这就是你想要的,或者你想知道如何用正文中的JSON对象构造http请求?
答案 1 :(得分:0)
我个人喜欢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);
}
}
仅供参考:不返回的异步不是一个好习惯。但是,这不是最初的问题。
答案 2 :(得分:0)
你的问题不是很清楚,你期望得到什么结果? 如果您想 POST 使用JSON正文的请求,您可以查看@Win评论, 但是如果你想从Api到MVC项目做出响应,你应该做更多的步骤。 :))