C# ASP.NET MVC Basics Modeling and Presenting Data Using Strongly Typed Views

Not sure why I have compiler errors.

Not sure why my code isn't working. I'm not sure if I have a syntax error I'm missing or what. What am I missing?

VideoGamesController.cs
using System.Web.Mvc;
using Treehouse.Models;

namespace Treehouse.Controllers
{
    public class VideoGamesController : Controller
    {
        public ActionResult Detail()
        {
            var videoGame = VideoGame()
            {
                Title = "Super Mario 64",
                Description = "Super Mario 64 is a 1996 platform video game developed and published by Nintendo for the Nintendo 64.",
                Characters = new string[]
                {
                    "Mario",
                    "Princess Peach",
                    "Bowser",
                    "Toad",
                    "Yoshi"
                }
            }

            return View(videoGame);
        }
    }
}
Detail.cshtml
@{
    ViewBag.PageTitle = "Video Game Detail";
}

<h1>@ViewBag.Title</h1>

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

<h5>Characters:</h5>
<div>
    <ul>
        @foreach (var character in ViewBag.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 string DisplayText
        {
            get
            {
                return Title + " (" + Publisher + ")";
            }
        }
    }
}

1 Answer

Steven Parker
Steven Parker
173,890 Points

It looks like two things are missing:

  • the word "new" when creating the instance
  • the semicolon at the end of the statement