title: ASP.NET MVC Routing Maproute parameter
body: <p>I am just going through on <code>MVC routing frame work</code>. I am bit confused on parameter taken by <code>RouteCollection.MapRoute</code> method.</p>
  
  <p>If I took a trditional example of below request</p>
  
  <pre><code>public class MvcApplication : System.Web.HttpApplication
  {
      public static void RegisterRoutes(RouteCollection routes)
      {
          routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  
   - List item
  
          routes.MapRoute(
              "Default",                                              // Route name
              "{controller}/{action}/{id}",                           // URL with parameters
              new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
          );
  
      }
  
      protected void Application_Start()
      {
          RegisterRoutes(RouteTable.Routes);
      }
  }
  </code></pre>
  
  <p>It's mapped with following signatures</p>
  
  <pre><code>public static Route MapRoute(
      this RouteCollection routes,
      string name,
      string url,
      Object defaults
  )
  </code></pre>
  
  <p>My question is regarding "Object defaults" , </p>
  
  <ol>
  <li>Why we are using it as  <code>new { controller = "Home", action = "Index", id = "" }</code></li>
  <li>Is this is a fixed format?</li>
  <li>How can <code>CLR interpret sequence</code> of parameter?</li>
  </ol>
  
  <p>Follow up questions:</p>
  
  <p>a. Why we decorate controller,action or id inside a bracket {}?</p>
  
  <p>b. Is there any match in between URL specify and defaults?</p>