Model values are null during [HttpPost]
<p>I'm having some problems with my code and was hoping someone could give me a hand. Here's the snippet I'm working with:</p>

<pre><code>[Authorize]
        public ActionResult EventResults(int id)
        {
            List&lt;Event&gt; CompetitionEvents = Event.getEventsByCompetitionId(id);
            ViewBag.CompetitionEvents = CompetitionEvents;
            List&lt;Person&gt; Competitors = Competition.getCompetitorsByCompetitionID(id);
            ViewBag.Competitors = Competitors;
            List&lt;Results&gt; Results = Competition.getCompetitorResultsPairings(CompetitionEvents, Competitors);
            ViewBag.Results = Results;
            ViewBag.OrganizerEmail = Competition.getCompetitionById(id).OrganizerEmail;
            return View();
        }
@model BINC.Models.Results
@using BINC.Models;
@{
    var eventList = ViewBag.CompetitionEvents as List&lt;Event&gt;;
    var competitorList = ViewBag.Competitors as List&lt;Person&gt;;
    var resultList = ViewBag.Results as List&lt;Results&gt;;
}
&lt;h2&gt;&lt;/h2&gt;
&lt;p&gt;Results:&lt;/p&gt;
    @using (Html.BeginForm())
       {
            foreach (var evt in eventList)
            {
                &lt;fieldset&gt;
                    &lt;legend&gt;@evt.activity.Name&lt;/legend&gt;
                   &lt;p&gt;Event Description:  @evt.activity.Description&lt;/p&gt;
                   @foreach (var competitor in competitorList)
                   {
                       foreach (var result in resultList)
                       {
                           if (result.EventID == evt.id &amp;&amp; result.CompetitorEmail == competitor.Email)
                           {
                               &lt;p&gt;Competitor:  @competitor.FirstName @competitor.LastName&lt;/p&gt;
                               &lt;p&gt;Score:  @result.Score&lt;/p&gt;
                               if (ViewBag.OrganizerEmail.Equals(@User.Identity.Name))
                               {
                                    @Html.LabelFor(model =&gt; model.Score, "New Score   ");
                                    @Html.TextBoxFor(model =&gt; model.Score, new { maxlength = 10, style = "width:125px" })
                                    &lt;input type="submit" name="submitButton" value="Update" /&gt;
                               }
                           }
                       }
                   }
                &lt;/fieldset&gt;
            }
       }
[HttpPost]
        public ActionResult EventResults(Results res)
        {
           //stuff
        }
</code></pre>

<p>My problem is nothing other than the score is set on my Results object.
For example, when I put the value '15' into the text box and click 'Update', I'm passing the Result model object to the httppost method, which has everything set to null other than the 'score' field that I just entered.</p>

<p>Am I over complicating this? Is there an easier way?</p>

<p>I tried adding</p>

<pre><code>@Html.HiddenFor(model =&gt; model.EventID);
@Html.HiddenFor(model =&gt; model.CompetitorEmail);
</code></pre>

<p>but that didn't seem to help any.</p>
