Changing Html.DisplayFor boolean checkbox MVC
You can use a display template to format the way your property is displayed.
Create a DisplayTemplates
folder either under ~/Shared
or in the View folder where the view that will be using this template exists.
Add a new partial view to this folder. Name it anything you'd like, e.g. IsActive.cshtml
@model bool
@if (Model == true)
{
@Html.Encode("Active")
}
@if (Model == false)
{
@Html.Encode("Inactive")
}
Now add data annotation to your property to let it know to use this display template.
[UIHint("IsActive")]
public bool IsActive { get; set; }
Use Html.DisplayFor
on any bool with this annotation and it will be formatted according to the display template with the matching name. With some tweaking, you can place the color change style directly in your display template.
This is a old question, but this might help someone. I had the exact same problem and solved with @(IsFooBar ? "Yes" : "No")
.
You can try this:
@if (item.IsActive)
{
@string.Format("Active");
}
else
{
@string.Format("Inactive");
}