title: How to apply BindAttribute.Prefix to an action method parameter of type Int32?
body: <p>When I apply <code>BindAttribute.Prefix</code> to an action parameter <code>value</code>, I would expect <code>DefaultModelBinder</code> to either use the <em>custom prefix</em> or fall back to an <code>empty prefix</code> ( in either case <code>value</code> parameter would be assigned number <code>100</code> ). But instead it does neither and as such the following code throws an exception:</p>
  
  <p><em>The parameters dictionary contains a null entry for parameter 'value' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Index(Int32)'</em> </p>
  
  <pre><code>[HttpPost]
  public ActionResult Index([Bind(Prefix = "originalPrefix")]int value)
  {
      return View();
  }
  
  public ActionResult Index()
  {
      return View();
  }
  </code></pre>
  
  <p>Index.cshtml:</p>
  
  <pre><code> using (Html.BeginForm())
   {      
         &lt;input id="originalPrefix.value" name="originalPrefix.value" type="text" value="100" /&gt;
         &lt;input id="value" name="value" type="text" value="100" /&gt;
  
         &lt;input type="submit" value="submit" /&gt;
   }  
  </code></pre>
  
  <p>a) Why isn't <code>DefaultModelBinder</code> able to bind <em>form data</em> to <code>value</code> parameter?</p>
  
  <p>b) If possible, how do we apply <code>BindAttribute.Prefix</code> to an action method parameter of type Int32? </p>
  
  <p>thank you</p>