title: ASP.NET MVC Html.RadioButton Exception
body: <p>I haver a simple radio button list on my page that I render with the following in my view:               </p>
  
  <pre><code>&lt;label for="gender"&gt;Gender&lt;/label&gt;
  &lt;%= Html.RadioButton("gender", 1) %&gt; Male
  &lt;%= Html.RadioButton("gender", 2) %&gt; Female
  &lt;%= Html.ValidationMessage("gender") %&gt;
  </code></pre>
  
  <p>Note that when the user initially sees this input, neither button is selected.
  The validation is there to force them to choose and not accept a default.
  Therefore, these two radio buttons are bound to a nullable int property in my model declared as:</p>
  
  <pre><code>public int? gender { get; set; }
  </code></pre>
  
  <p>So if they do not select a button, and submit the page, the gender property will be null indicating that they did not select. The following validation is called by the controller during the post:</p>
  
  <pre><code>if (!gender.HasValue)
      ModelState.AddModelError("gender", "gender required");
  </code></pre>
  
  <p>But, if the validation fails (they did not choose), then during the rendering phase, the following exception is thrown by the MVC framework:</p>
  
  <pre><code>System.NullReferenceException was unhandled by user code
    Message="Object reference not set to an instance of an object."
  </code></pre>
  
  <p>In searching for for a solution to this problem, I noted several had this problem.
  I am using ASP.NET MVC 1.0. I found the place in the code where this error is thrown using .NET Reflector.</p>
  
  <p>The question is how to make this work correctly?</p>
  
  <p>EDIT: to add stacktrace:</p>
  
  <pre><code>System.NullReferenceException was unhandled by user code
    Message="Object reference not set to an instance of an object."
    Source="System.Web.Mvc"
    StackTrace:
         at System.Web.Mvc.HtmlHelper.GetModelStateValue(String key, Type destinationType)
         at System.Web.Mvc.Html.InputExtensions.InputHelper(HtmlHelper htmlHelper, InputType inputType, String name, Object value, Boolean useViewData, Boolean isChecked, Boolean setId, Boolean isExplicitValue, IDictionary`2 htmlAttributes)
         at System.Web.Mvc.Html.InputExtensions.RadioButton(HtmlHelper htmlHelper, String name, Object value, Boolean isChecked, IDictionary`2 htmlAttributes)
         at System.Web.Mvc.Html.InputExtensions.RadioButton(HtmlHelper htmlHelper, String name, Object value, IDictionary`2 htmlAttributes)
         at System.Web.Mvc.Html.InputExtensions.RadioButton(HtmlHelper htmlHelper, String name, Object value)
         at ASP.views_vbs_register_aspx.__RenderregisterContent(HtmlTextWriter __w, Control parameterContainer) in c:\Users\David\Documents\BellevueProject\Bellevue\BellevueTeachers\Forms\Views\VBS\Register.aspx:line 42
  </code></pre>