C# ASP.NET MVC Basics Modeling and Presenting Data Using Razor to Render Boolean Values

this question did not make sense to me and I would appreciate some suggestions

Can you give me some suggestions on this question

Detail.cshtml
@model Treehouse.Models.VideoGame

@{
    ViewBag.PageTitle = "Video Game Detail";
}

<h1>@Model.Title</h1>

<h5>Favorite: @Model.Favorite</h5>

<h5>Description:</h5>
<div>@Model.Description</div>

<h5>Characters:</h5>
<div>
    <ul>
        @foreach (var character in Model.Characters)
        {
            <li>@character</li>
        }
    </ul>
</div>
VideoGame.cs
namespace Treehouse.Models
{
    // Don't make any changes to this class!
    public class VideoGame
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string[] Characters { get; set; }
        public string Publisher { get; set; }
        public bool Favorite { get; set; }

        public string DisplayText
        {
            get
            {
                return Title + " (" + Publisher + ")";
            }
        }
    }
}

3 Answers

Henrique Vignon
PRO
Henrique Vignon
Pro Student 6,415 Points

It's asking you to run a ternary check on the Favorite property, which is a Boolean, then set the Label "Property: " in the view to say "Yes" in case of true, and "No" in case of false, so it will be something like this:

   <h5>Favorite: @(Model.Favorite ? "Yes" : "No")</h5>

A ternary operation is basically a simplified IF check that runs on a single line, so the check in this case is Model.favorite, since it's a boolean it can either be true of false, the "?" is what tells the interpreter/compiler that this is a ternary check, then whatever comes right after the "?" is what will happen in case that checks pass as true, the ":" is the same thing as an ELSE in a IF, so whatever comes after it is what will happen if the check pass as false.

Henrique Vignon
Henrique Vignon
Pro Student 6,415 Points

ah! someone ninja'ed me :) and with a better explanation at that.

Steven Parker
Steven Parker
176,778 Points

I guess not everyone shares your opinion about the quality of the answers. :stuck_out_tongue_winking_eye:

Steven Parker
Steven Parker
176,778 Points

You're asked to change true or false into "Yes" or "No".

The challenge says to do this with the ternary operator. Do you remember what that is? It uses a question mark and a colon, like this:

/*value or expression to test*/ ? /*value to return if true*/ : /*value to return if false*/

So, to begin with Model.Favorite is either true or false. Your task is to apply a ternary expression to use it to get either the string "Yes" or "No".

thank you everyone I was able to figure this out but I really appreciate the great explanations