When there is only one person to select I still need to assign the hardcoded value 'TRUE' to the People[i].IsSelected property to satisfy my validation.
How can I do that?
@if (hasMoreThanOnePerson)
{
<td>
@Html.CheckBoxFor(m => m.People[i].IsSelected)
</td>
}
else
{
@Html.HiddenFor(m => m.People[i].IsSelected, true) // Set TRUE always to hidden field within for loop with indexer
}
Use htmlAttributes
to set value
property of Hidden Field using this overload or this overload:
@Html.HiddenFor(m => m.People[i].IsSelected, new {Value="true"})
It will output html like:
<input id="YourModel.People[0].IsSelected"
name="YourModel.People[0].IsSelected"
type="hidden"
value="true">
Why not just set the value to true
inside the else
block?
@if (hasMoreThanOnePerson)
{
<td>
@Html.CheckBoxFor(m => m.People[i].IsSelected)
</td>
}
else
{
@{ Model.People[i].IsSelected = true; }
@Html.HiddenFor(m => m.People[i].IsSelected) // Set TRUE always to hidden field within for loop with indexer
}