title: ASP.NET MVC 4 Routing is Matching, but Controller is Never Called
body: <p>I've been struggling with a new ASP.NET MVC 4 project in VS 2010. I've got a very basic setup with a single controller (<code>SiteController</code>), a single route (<code>{action}</code>), and a single view (<code>Views/Site/Default.cshtml</code>). For some reason, I can't get it to display the view, even though the routes match according to RouteDebugger, and all I get is 404 errors. I thought it was Cassini being a jerk, so I installed IIS 7, but it's still not working. Here's the relevant code:</p>
  
  <p><strong>SiteController</strong></p>
  
  <pre><code>/// Note: BaseController is in a different assembly I use to extend MVC and it works fine because I use it in a dozen other projects.
  public class SiteController : BaseController {
      public ActionResult Default() {
          return base.View();
      }
  }
  </code></pre>
  
  <p><strong>RouteConfig</strong></p>
  
  <pre><code>public class RouteConfig {
      public static void RegisterRoutes(
          /// http(s)://{host}/{action}
          routes.MapRoute("6354af93-f979-44a4-ba9b-cc8ab775edf6", "{action}", new {
              action = "Default",
              controller = "Site"
          });
  
          /// http(s)://{host}/{*any}
          routes.MapRoute("04b41915-4455-4c11-96c2-38e6aedf929f", "{*any}", new {
              action = "Default",
              controller = "Site"
          });
      }
  }
  </code></pre>
  
  <p>Here's the folder structure of the project:</p>
  
  <pre><code>App_Start
      BundlesConfig.cs
      FilterConfig.cs
      NinjectWebCommon.cs
      RouteConfig.cs
  Controllers
      SiteController.cs
  Models
  Views
      Shared
          _Site.cshtml
      Site
          Default.cshtml
      Web.config
  Global.asax
  packages.config
  Web.Config
  </code></pre>