Checkbox disabled attribute in ASP.NET MVC

asp.net-mvc, c#, razor

Solution

It is not easy to achieve this with an `if` condition inside the helper method because all the below markups will render a disabled chechbox.

<input type="checkbox" disabled>
<input type="checkbox" disabled="disabled">
<input type="checkbox" disabled="false">
<input type="checkbox" disabled="no">
<input type="checkbox" disabled="enabled">

This should work in the razor. Simple If condition and rendering what you want.

@if(item.Selected)
{ 
  @Html.CheckBoxFor(modelItem => item.Selected)
}
else
{
    @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = "disabled"})
}

You may consider writing a custom html helper which renders the proper markup for this.

Problem

My ViewModel has a property of selected and selectable. Both are boolean. I would like my view to have a checkbox that is enabled when selectable is true and disabled when selectable is false. What is the proper razor syntax to accomplish this ? I tried the code below on a list of items in a table. Every row comes back with a disabled checkbox regardless of selectable value. ``` @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable }) ```

Original source