title: MVC: Is it possible to override controller action?
body: <p>A little background first as to why I need this. I am currently creating a CMS. If you imagine this CMS has a PageController which provides all the information a standard page needs, content, navigation etc.</p>
  <p>Now the CMS can be amended for each client using it, and should a client require extra/different information in their pages I would like to override the default PageController with one tailored specifically for their needs.</p>
  <p>This is what I have tried:</p>
  <p><strong>Base controller</strong></p>
  <pre><code>namespace CMS.Core.Controllers {
      public class PageController : Controller {
          public virtual ActionResult DisplayHome() {
              // Logic
              return View();
          }
      }
  }
  </code></pre>
  <p><strong>Client specific controller</strong></p>
  <pre><code>namespace CMS.ClientCore.Controllers {
      public class PageController : Core.Controllers.PageController {
          public override ActionResult DisplayHome() {
              return Content(&quot;Client Home&quot;); // Just for testing
          }
      }
  }
  </code></pre>
  <p><strong>Route</strong></p>
  <pre><code>routes.MapRouteInLowercase(
      &quot;Home&quot;,
      &quot;&quot;,
      new { controller = &quot;Page&quot;, action = &quot;DisplayHome&quot; },
      new[] { &quot;CMS.Core.Controllers&quot;, &quot;CMS.ClientCore.Controllers&quot; }
  );
  </code></pre>
  <p><strong>The Error</strong></p>
  <blockquote>
  <p>The request for 'Page' has found the following matching controllers:
  PCCMS.Core.Controllers.PageController</p>
  <p>PCCMS.ClientCore.Controllers.PageController</p>
  </blockquote>
  <p>The cause of the error is obvious, so is there an alternative method to override a controller/controller action?</p>