title: MVC controller is being called twice
body: <p>I have a controller that is being called twice from an ActionLink call. </p>
  
  <p>My home page has a link, that when clicked calls the Index method on the Play controller. An id of 100 is passed into the method. I think this is what is causing the issue. More on this below.</p>
  
  <p>Here are some code snippets:</p>
  
  <p>Home page:</p>
  
  <pre><code>&lt;%= Html.ActionLink("Click Me", "Index", "Play", new { id = 100 }, null) %&gt;
  </code></pre>
  
  <p>Play Controller:</p>
  
  <pre><code>public ActionResult Index(int? id)
  {
      var settings = new Dictionary&lt;string, string&gt;();
      settings.Add("Id", id.ToString());
      ViewData["InitParams"] = settings.ToInitParams();
      return View();
  }
  </code></pre>
  
  <p>Play view:</p>
  
  <pre><code>&lt;%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" %&gt;
  
  (html &lt;head&gt; omitted for brevity)
  
  &lt;body&gt;
      &lt;form id="form1" runat="server" style="height:100%"&gt;
          Hello
      &lt;/form&gt;
  &lt;/body&gt;
  </code></pre>
  
  <p>If I get rid of the parameter to the Index method, everything is fine. If I leave the parameter in place, then the Index method is called with 100 as the id. After returning the View, the method is called a second time with a parameter of null.</p>
  
  <p>I can’t seem to figure out what is triggering the second call.</p>
  
  <p>My first thought was to add a specific route like this:</p>
  
  <pre><code>routes.MapRoute(
      "Play", // Route name
      "Play/{id}", // URL with parameters
      new {controller = "Play", action = "Index"} // Parameter defaults
  );
  </code></pre>
  
  <p>This had no effect other than making a prettier looking link.</p>
  
  <p>I am not sure where to go from here.</p>