From: J055 on
Hi

When I use this:

<%= Html.CheckBoxFor(m => m.CopyAddress)%>

it produces html like:

<input checked="checked" id="CopyAddress"
name="CopyAddress" type="checkbox" value="true" /><input name="CopyAddress"
type="hidden" value="false" />

or

<input id="CopyAddress" name="CopyAddress"
type="checkbox" value="true" /><input name="CopyAddress" type="hidden"
value="false" />

which means the System.Web.Mvc.FormCollection for value CopyAddress are
either "false" or "true,false".

Can someone explain the logic and provide an example of how to use it to get
either a true or false value?

Thanks
Andrew


From: Alexey Smirnov on
On May 24, 7:53 pm, "J055" <j...(a)newsgroup.nospam> wrote:
> Hi
>
> When I use this:
>
> <%= Html.CheckBoxFor(m => m.CopyAddress)%>
>
> it produces html like:
>
>                     <input checked="checked" id="CopyAddress"
> name="CopyAddress" type="checkbox" value="true" /><input name="CopyAddress"
> type="hidden" value="false" />
>
> or
>
>                     <input id="CopyAddress" name="CopyAddress"
> type="checkbox" value="true" /><input name="CopyAddress" type="hidden"
> value="false" />
>
> which means the System.Web.Mvc.FormCollection for value  CopyAddress are
> either "false" or "true,false".
>
> Can someone explain the logic and provide an example of how to use it to get
> either a true or false value?
>
> Thanks
> Andrew

Please check this thread
http://forums.asp.net/t/1314753.aspx
From: J055 on

Thanks

Rendering a dumb hidden field for every checkbox is a messy business. I
guess if model binding requires it then so be it. I'm not using model
binding at the moment so I created this function to handle bool values in
the FormCollection when using Html.CheckBoxFor.

private static bool CoerceToBool(string s)
{
if (string.IsNullOrEmpty(s)) return false;

var a = s.Split(',');
foreach (string t in a)
{
bool value;
if (bool.TryParse(t, out value) && value) return true;
}
return false;
}

Cheers
Andrew