title: MVC-Routing,Why i can not ignore defaults,The matched route does not include a 'controller' route value, which is required
body: <p>I have this configuration</p>
  
  <pre><code>public static void RegisterRoutes(RouteCollection routes)
          {
              routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  
              routes.MapRoute(
                 name: "TestRoute",
                 url: "home/MyTestDrillDown/{productcat}",
                 defaults: new { controller = "Home", action = "MyTestDrillDown" }
             );
  
              routes.MapRoute(
                  name: "Default",
                  url: "{controller}/{action}/{id}",
                  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
              );
          }
  </code></pre>
  
  <p>I want to configure TestRoute as</p>
  
  <pre><code>routes.MapRoute(
                 name: "TestRoute",
                 url: "home/MyTestDrillDown/{productcat}"
             );
  </code></pre>
  
  <p>but i see following error.
  <strong>The matched route does not include a 'controller' route value, which is required</strong>.</p>
  
  <p>My understanding is that if i have a hard coded a url then it directly matches to a controller and an action, in my case <code>"home/MyTestDrillDown/{productcat}"</code> matching to <em>HomeController</em> and <em>MyTestDrillDown</em> action.</p>
  
  <p>I am sure i am missing something very basic and important here as there exists an overload of <code>MapRoute</code> method which takes only <em>Name</em> and <em>Url</em> as parameter.</p>
  
  <p>Thanks</p>