The string was not identified as a valid Boolean string

asp.net-mvc

Solution

Try without helpers:

<% for (int currentDay = 1; currentDay <= 7; currentDay++) { %>
    <input type="checkbox" name="TimeRange<%= currentDay.ToString() %>" />
<% } %>

Html Helpers get their values from :

- `ViewData.ModelState["controlName"].Value.RawValue`.

- `value` parameter passed to HTML helper method.

They also generate a hidden input field in addition to the checkbox. So depending on the context sometimes you may end up with markup like this:

<input type="checkbox" name="TimeRange1" value="SomeValue, false" />

and when you post the form the data binder will be unable to convert the value to a boolean type.

Problem

I have a page where I list checkboxes named TimeRange1, TimeRange2.... TimeRange7, and I generate them in a for loop like this: ``` <% for (int currentDay = 1; currentDay <= 7; currentDay++) ......<%= Html.CheckBox("TimeRange" + currentDay.ToString(), false)%> ``` Works fine til I post the form, then I get a "The string was not identified as a valid Boolean string." Apparently the problem is that I concatenate the name of the checkbox. Is there some neat way of fixing this? I need to have them named 1-7. It's like a big schedule where you select which times should be available.

Original source

Related problems