title: Asp.Net Core 3.0 CreatedAtAction returns "no route matches the supplied values" when Action name ends with "Async"
body: <p>I had a strange problem with CreatedAtAction, if my method name ends with "Async" keyword, I get an 500 error "no route matches the supplied values" when I return CreatedAtAction from my Add method. If I put anything else as method name like GetRatePlanAs, GetRatePlanAsyncA or GetRatePlan then it works like a charm.</p>
  
  <p>It would also work if I add [ActionName("GetRatePlanAsync")] but I didn't want to do that.</p>
  
  <p>CreatedAtAction:</p>
  
  <pre><code>return CreatedAtAction(nameof(GetRatePlanAsync), new { ... }, null);
  </code></pre>
  
  <p>Doesn't work:</p>
  
  <pre><code>    [HttpGet]
      [Route("item")]
      public async Task&lt;ActionResult&gt; GetRatePlanAsync(...)
  </code></pre>
  
  <p>Works:</p>
  
  <pre><code>    [HttpGet]
      [Route("item")]
      [ActionName("GetRatePlanAsync")]
      public async Task&lt;ActionResult&gt; GetRatePlanAsync(...)
  </code></pre>
  
  <p>Also work:</p>
  
  <pre><code>    [HttpGet]
      [Route("item")]
      public async Task&lt;ActionResult&gt; GetRatePlan(...)
  </code></pre>