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

Syed Nadim
Syed Nadim
3,853 Points

I am not quite understanding this compile error:

I am receiving this compile error and I am not sure why, VideoGamesController.cs(37,34): error CS0246: The type or namespace name VideoGame' could not be found. Are you missingTreehouse.Models' using directive? Compilation failed: 1 error(s), 0 warnings

VideoGamesController.cs
using System.Web.Mvc;

namespace Treehouse.Controllers
{
    public class VideoGamesController : Controller
    {
        public ActionResult Detail()
        {
            var video_game = new 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(video_game);
        }
    }
}
Detail.cshtml
@model Treehouse.Models.VideoGame

@{
    ViewBag.PageTitle = Model.DisplayText;
}

<h1>@Model.Title</h1>

<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 string DisplayText
        {
            get
            {
                return Title + " (" + Publisher + ")";
            }
        }
    }
}

2 Answers

Syed Nadim
Syed Nadim
3,853 Points

Nevermind I realized I forgot to add "using Treehouse.Models;" at the top of the VideoGamesController.cs file. In my Visual studio for mac asp.net core mvc, it adds that automatically so I totally forgot about it.

Steven Parker
Steven Parker
173,537 Points

Isn't that exactly what I pointed out in my answer?

Steven Parker
Steven Parker
173,537 Points

The error message appears to be correctly identifying the issue.

The very first step in the instructions is: "Add a using directive for the Treehouse.Models namespace." but there doesn't appear to be such a directive in the code shown here.

Once you add that, you should pass this step of the challenge. The rest of the code looks good! :+1:

Syed Nadim
Syed Nadim
3,853 Points

I am probably not understanding the error correctly. I seem to have the first line of Detail.cshtml correct but I am not quite sure