title: How do I redirect from one Async Action to Another (MVC5)
body: <p>I have an Admin section to my site, where I want admin people to be able to add new users.
  I also have a separate Register Link, which works.</p>
  
  <p>I want to use <code>ajax</code> to update my admin section. So the plan is:</p>
  
  <ol>
  <li>Admin fills in form of user info</li>
  <li><code>AdminController</code> checks if it is valid and then redirects to the <code>AuthenticationController</code> method to create the user</li>
  <li>If the <code>AuthController</code> returns success, then reload the list of all users</li>
  <li>return this to the partial to update the screen.</li>
  </ol>
  
  <p>When I debug the code, I hit the Admin controller, but I cannot step into the <code>AuthController</code> to see why it is failing. (It all compiles OK)</p>
  
  <p>I assume it is something to do with the fact that my two methods are both async, but I cannot await the redirect from one to the other.</p>
  
  <p>Briefly, the code is;</p>
  
  <pre><code>[Authorize(Roles = "AccessAllAreas")]
  [HttpPost]
  [ValidateAntiForgeryToken()]        
  public async Task&lt;PartialViewResult&gt; CreateNewUser(ApplicationUserViewModel avm)
  {
      if (ModelState.IsValid)
      {
          try
          {
              var foo = RedirectToAction("RegisterAsyncFromOtherController", "Account", avm);
  
      ....
      }
  
  [Authorize(Roles = "AccessAllAreas")]
  [ValidateAntiForgeryToken()]
  public async Task&lt;ActionResult&gt; RegisterAsyncFromOtherController(ApplicationUserViewModel model)
  {
      if (ModelState.IsValid)
      {
          ....
      }
  }
  </code></pre>
  
  <p>A break point on the above <code>if (Modelstate.IsValid)</code> is never hit. However a breakpoint and then step into on the call to <code>RegisterAsyncFromOtherController()</code> accesses one of the properties on the view model, then it returns to <code>CreateNewUser</code>. (Which is what makes me suspect that the async is not working correctly).</p>
  
  <p>Is there anything wrong with the concept I have here, and what is causing the debug behaviour I am seeing?</p>