title: Using Url.Action with no route values truncates the URL
body: <p>I've got a site that's using making heavy use of AJAX, and in-order to keep things like Urls in a sensible place, I'm outputting the required Urls in a script block on the page, and then using them in a Javascript file later.</p>
  
  <p>An example of this would be:</p>
  
  <p><em><strong>In Index.cshtml</em></strong></p>
  
  <pre><code>&lt;script&gt;
      if (!app.frontoffice)
          app.frontoffice = {};
      if (!app.frontoffice.urls)
          app.frontoffice.urls = {};
  
      if (!app.frontoffice.urls.index)
          app.frontoffice.urls.index = "@Url.Action("index", "frontoffice", new { area = string.Empty, id = string.Empty })";
  &lt;/script&gt;
  </code></pre>
  
  <p><em><strong>In a JS file somewhere</em></strong></p>
  
  <pre><code>$(function() {
      $("myButton").click(function(e) {
          $.ajax({
              url: app.frontoffice.urls.index,
              data: {
                  id: 55
              },
              success: ...
              error: ...
          });
      });
  });
  </code></pre>
  
  <p>The issue is that the generated Url is created like so - <code>/frontoffice</code>, notice it's excluding the <code>index</code> action. This is because when it was generated we gave it an empty <code>id</code>, so when we come to use it, the Url that gets requested is actually <code>/frontoffic/55', not</code>/frontoffice/index/55'..</p>
  
  <p>The <code>UrlHelper</code> seems to be culling the action name from url. Is there another method I can use that doesn't remove items from the Url? - I was hoping to get away with a clear, reusable solution as this kind of thing happens all over the site.</p>
  
  <p>Thanks<br />
  Kieron</p>