2015-10-20 50 views
0

我有一个库包装器OVH API,我尝试调用一个函数来获取ASP.NET MVC项目中的消费者密钥。它工作在一个控制台项目申请,但该方法在我的控制器从未回应:图书馆从ASP.NET MVC中的控制器调用异步任务<>>

public async Task<CredentialsResponse> RequestCredential(IEnumerable<AccessRule> accessRules, string redirectUrl = null) 
    { 
     Ensure.NotNull("accessRules", accessRules); 

     CredentialsRequest cmd = new CredentialsRequest(); 
     cmd.AccessRules.AddRange(accessRules); 
     cmd.Redirection = redirectUrl; 

     if (cmd.AccessRules.Count == 0) 
      throw new ArgumentException("You must specify at least one accessRule"); 
     return await RawCall<CredentialsResponse>(HttpMethod.Post, "/auth/credential", cmd; 
    } 

的方法,我在控制器拨打:

public ActionResult Index() 
    { 
     Information infosClient = new Information(); 

     OvhApiClient api = new OvhApiClient("", "", OvhInfra.Europe); 

     CredentialsResponse response = api.RequestCredential(new[]{ 
      new AccessRule{ Method = "GET", Path = "/*"}, 
      new AccessRule{ Method = "PUT", Path = "/*"}, 
      new AccessRule{ Method = "POST", Path = "/*"}, 
      //new AccessRule{ Method = "DELETE", Path = "/*"}, 
     }).Result; 

     api.ConsumerKey = response.ConsumerKey; 

     infosClient.ConsumerKey = api.ConsumerKey; 
     return View(infosClient); 
    } 

我已经尝试了很多的东西没有成功(例如,将呼叫置于异步方法中)。

在此先感谢您的帮助

回答

7

使控制器动作异步:

public async Task<ActionResult> Index() 
{ 
    ... 
    CredentialsResponse response = await api.RequestCredential(...); 
    ... 
} 
+0

谢谢你,它工作正常。 :) – ArthurCPPCLI

+0

是的,只是延迟来验证。 – ArthurCPPCLI

相关问题