title: ASP.NET MVC Preview 4 - Stop Url.RouteUrl() etc. using existing parameters
body: <p>I have an action like this:</p>
  
  <pre><code>public class News : System.Web.Mvc.Controller
  {
      public ActionResult Archive(int year)
      {
         / *** /
      }
  }
  </code></pre>
  
  <p>With a route like this:</p>
  
  <pre><code>routes.MapRoute(
             "News-Archive",                                              
             "News.mvc/Archive/{year}",                           
             new { controller = "News", action = "Archive" }
         );
  </code></pre>
  
  <p>The URL that I am on is:</p>
  
  <pre><code>News.mvc/Archive/2008
  </code></pre>
  
  <p>I have a form on this page like this:</p>
  
  <pre><code>&lt;form&gt;
      &lt;select name="year"&gt;
          &lt;option value="2007"&gt;2007&lt;/option&gt;
      &lt;/select&gt;
  &lt;/form&gt;
  </code></pre>
  
  <p>Submitting the form should go to News.mvc/Archive/2007 if '2007' is selected in the form.</p>
  
  <p>This requires the form 'action' attribute to be "News.mvc/Archive".</p>
  
  <p>However, if I declare a form like this:</p>
  
  <pre><code>&lt;form method="get" action="&lt;%=Url.RouteUrl("News-Archive")%&gt;"&gt;
  </code></pre>
  
  <p>it renders as:</p>
  
  <pre><code>&lt;form method="get" action="/News.mvc/Archive/2008"&gt;
  </code></pre>
  
  <p>Can someone please let me know what I'm missing?</p>