title: How to control routing values
body: <p>Maybe I don't understand real purpose of asp mvc routing.<br/>
  I created an application and now I need to fix my url's a to be more understandable.<br/>
  For example I have area <code>Cities</code> with controller <code>Home</code> and action <code>Index</code>.<br/>
  So here I need url like: <code>localhost/London</code> but with current routing I get <code>localhost/cityPage/Home</code>.<br/>
  My question is can I somehow pass parameter like <code>city name</code> and make URL like I want?<br/>
  This is my  current default routing in Global.asax</p>
  
  <pre><code>routes.MapRoute(
                  "Default",
                  "{area}/{controller}/{action}/{id}",
                  new { area = "CityPage", controller = "Home", action = "Index", id = "" },
                  new string[] { "MyProject.Areas.Cities.Controllers" }).DataTokens.Add("area", "Cities");
  </code></pre>
  
  <p>New routing:</p>
  
  <pre><code>routes.MapRoute(null,
                              "CityPage/{cityName}",
                              new
                              {
                                  area = "CityPage",
                                  controller = "Home",
                                  action = "Index"
                              }
                          );
  
              routes.MapRoute(
                  "Default",
                  "{area}/{controller}/{action}/{id}",
                  new { area = "CityPage", controller = "Home", action = "Index", id = "" },
                  new string[] { "MyProject.WebUI.Areas.CityPage.Controllers" }).DataTokens.Add("area", "CityPage");
  </code></pre>
  
  <p>Example of link that I click</p>
  
  <pre><code>@Html.ActionLink("City London", "Index", "Home", new { cityName = "London" }, null)
  </code></pre>