网页表单方法
public async Task<CSSetup> CSCreateSetup(CSAudit TempAudit)
{
using (var client = new HttpClient())
{
var APIPath = Session["APIPath"].ToString();
CSSetup TempSetup = new CSSetup();
//Content
var json = JsonConvert.SerializeObject(TempAudit);
var RawText = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
//HttpClient
client.BaseAddress = new Uri(APIPath);
HttpResponseMessage response = await client.PostAsync("api/create", RawText);
if (response.IsSuccessStatusCode)
{
TempSetup = await response.Content.ReadAsAsync<CSSetup>();
}
else
{
Session["Message"] = "Error creating setup";
}
return await Task.FromResult(TempSetup);
}
}
行动后
[HttpPost]
[Route("Create")]
public async Task<ActionResult> CreateSetup(CSAudit TempAudit)
{
try
{
return Ok(await setupManager.CSCreateSetup(TempAudit));
}
catch (Exception)
{
return StatusCode(StatusCodes.Status500InternalServerError, "Error creating setup object");
}
}
调用CreateSetup
protected async void BtnSave_Click(object sender, EventArgs e)
{
var TempAudit = new CSAudit("ADMIN", DateTime.Now.ToString("yyyyMMdd"));
CSSetup TempSetup = (CSCreateSetup(TempAudit)).Result;
}
我尝试过的
@Dai,一百万谢谢。我已将调用转换为包含结果并删除了等待
旧代码
HttpResponseMessage response = await client.PostAsync("api/create", RawText);
新代码
HttpResponseMessage response = client.PostAsync("api/create", RawText).Result;