Note that there are some explanatory texts on larger screens.

plurals
  1. POASP.NET MVC Html.RadioButton Exception
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload