I am very new to ASP.Net / MVC . I have created a View that I am populating from a model.
I am creating a rows for each item in the model to show their properties/attributes of model item.
One of the member is a bool , name is Staged. In the View I want to display it as Yes if true or No if false. The user will only be able to read it, so simple text Yes/No shall be sufficient.
I am using the following code in the cshtml
<td>
@Html.DisplayFor(modelItem => item.Staged)
</td>
This however shows a checkbox in the place, how can I show it as Yes/No ?
Thanks,
You could use a custom html helper extension method like this:
@Html.YesNo(item.Staged)
Here is the code for this:
public static MvcHtmlString YesNo(this HtmlHelper htmlHelper, bool yesNo)
{
var text = yesNo ? "Yes" : "No";
return new MvcHtmlString(text);
}
This way you could re-use it throughout the site with a single line of Razor code.
use Html.Raw and render the string conditionally based on model value true/false
<td>
@Html.Raw((Model.Staged)?"Yes":"No")
</td>
In the model, you would need to make a new property that does something like this...
public string ItemStagedYesNo = (item.Staged) ? "Yes" : "No";
then in the view, do
@Html.DisplayFor(modelItem => ItemStagedYesNo);
Change
@Html.DisplayFor(modelItem => item.Staged)
to
@(item.Staged?"Yes":"No")
This is the simplest way to achieve what your requirements.