title: Post Method is getting a null parameter ASP .NET MVC
body: <p>When I debug through my code I am getting a null value for the 'review' parameter in the Post EmployeeReviewEdit method. When I walk through the HttpGET method the return value of 'review' looks correct and eveything is populated correctly in the view but when I post back to to the action the parameter is null and i can't seem to figure it out why.</p>
  
  <p>Here are my GET and POST actions:</p>
  
  <pre><code>[HttpGet]
  public ActionResult EmployeeReviewEdit(int id, string employeeName)
  {
      ViewBag.EmployeeName = employeeName;
      var review = _employeeDb.EmployeeReviews.Find(id);
      var cono = _employeeDb.EmployeeMasters.FirstOrDefault(e =&gt; e.EmployeeNumber ==  review.EmployeeNo).CompanyNumber;
      var list = _selectListLib.GetManagers((int)cono,Convert.ToInt32(review.ReviewBy));
      ViewBag.ManagerList = list;
      return View(review);
  </code></pre>
  
  <p>}</p>
  
  <pre><code>[HttpPost]
  public ActionResult EmployeeReviewEdit(EmployeeReview review)
  {
      _dbDataManipulation.UpdateEmployeeReview((int)review.EmployeeNo,(DateTime) review.ReviewDate, review.ReviewBy, CurrentUserName(), review.Id);
      return RedirectToAction("EmployeeReview", new { empNo = review.EmployeeNo});
  }
  </code></pre>
  
  <p>Here is my View:</p>
  
  <pre><code>@model EmployeeMaster.Models.EmployeeReview
  @{
      ViewBag.Title = "EmployeeReviewEdit";
  }
  
  @section scripts
  {
      &lt;script type="text/javascript"&gt;
          $(function () {
              $('#ReviewDate').datepicker();
          });
      &lt;/script&gt;
  }
  
  &lt;div id="results-container" style="background-color: #c9c9c9; padding: 10px; margin-top: 40px;"&gt;
      &lt;h2&gt;@ViewBag.EmployeeName - Edit Review&lt;/h2&gt;
      &lt;div style="background-color: #9e2b3c; padding: 1px; margin-bottom: 10px"&gt;&lt;/div&gt;
  
      @using (Html.BeginForm("EmployeeReviewEdit","Employee", FormMethod.Post, new{@id = "review-edit-form"}))
      {
          @Html.Label("Review Date: ", new { id = "reviewdate-label" })
          @Html.TextBoxFor(model =&gt; model.ReviewDate,"{0:d}", new { @class = "form-control" })
          @Html.Label("Review By: ", new { id = "reviewby-label" })
          @Html.DropDownListFor(model =&gt; model.ReviewBy, (List &lt; SelectListItem &gt;)ViewBag.ManagerList, new { @class = "form-control" })
          @Html.HiddenFor(model =&gt; model.EmployeeNo)
          @Html.HiddenFor(model =&gt; model.CreatedBy)
          @Html.HiddenFor(model =&gt; model.CreatedOn)
          @Html.HiddenFor(model =&gt; model.ModifiedBy)
          @Html.HiddenFor(model =&gt; model.ModifiedOn)
          @Html.HiddenFor(model =&gt; model.Id)
  
          &lt;input type="submit" name="review" class="col-sm-1 btn btn-default" id="edit-button"value="Save" /&gt;
  
      }
  &lt;/div&gt;
  </code></pre>
  
  <p><strong>My issue was that my input control had a name "review" which was causing confusion to my parameter which is also called "review" i changed the name of the input[submit].</strong></p>