如何从控制器操作触发Web API?

时间:2017-05-25 21:40:55

标签: asp.net-mvc-5

我有一个ASP.NET MVC 5应用程序,它收集信息并将其保存到数据库中。在保存之后但是在从此操作返回视图之前,我想向Web API发送GET请求(带有字符串参数)以触发其他处理工作。额外的处理将是一个长期运行的任务,我不会等待响应。

如何在不等待GET请求响应的情况下触发API并继续返回视图?

以下是我希望触发API的方法的签名:

public async Task<ActionResult> XYZ(XYZViewModel model)
{
     //
     // Saving data to db...
     //

     <-- Trigger API here -->

     return View("XYZResult", vm);
}

1 个答案:

答案 0 :(得分:0)

using RestSharp;



    public Task TriggerAPIAsync(XYZViewModel model)
    {

        RestClient client = new RestClient();
        client.BaseUrl = new Uri("API_URL");

        RestRequest request = new RestRequest();

        request.AddParameter("param_name", "value");
         ....
        request.AddParameter("param_name", "value");


        request.Method = Method.POST/GET;
        client.Execute(request);

        return Task.FromResult(0);
    }

然后调用它

public ActionResult XYZ(XYZViewModel model)
{
     //
     // Saving data to db...
     //

     APIAsync(model);

     return View("XYZResult", vm);
}