title: ASP.NET Core API Versioning - Same controller for all versions
body: <p>I have an ASP.NET Core 3.1 API and I am introducing a new version for one of my controllers.
  I am using the <em>Microsoft.AspNetCore.Mvc.Versioning</em> NuGet package and I have set the new version to be the default version.
  All my other controllers should work with both the old version (1.0) and the new version (1.1).</p>
  <p>For example:</p>
  <pre class="lang-cs prettyprint-override"><code>    [ApiVersion(&quot;1.0&quot;, Deprecated = true)]
      public class MySampleController
      {
      }
      
      [ApiVersion(&quot;1.1&quot;)]
      public class MyNewSampleController
      {
      }
  
      [ApiVersion(&quot;1.0&quot;, Deprecated = true)]
      [ApiVersion(&quot;1.1&quot;)]
      public class AllOtherController
      {
      }
  </code></pre>
  <p>Questions:<br />
  Do I really have to add all versions to all controllers?<br />
  Is there a better/correct way of handling this?</p>
  <p>I have tried to use [ApiVersionNeutral] but that does not seem correct and, according to the <a href="https://github.com/microsoft/aspnet-api-versioning/wiki/Opting-Out-of-Versioning" rel="nofollow noreferrer">documentation</a>, should only be used in special cases.
  If I do not add the [ApiVersion] attribute, it defaults to the new 1.1 version and 1.0 no longer works.</p>
  <p>Since this is my first SO question, I hope itfalls within the guidelines :)</p>