Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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

I can set all of the properties but then i get to characters i get " namespace name `Characters'could not be found"?

i have mad no changes other than to the file where the array was starting out. i can set all properties fine except the one with the array

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

namespace Treehouse.Controllers
{
    public class VideoGamesController : Controller
    {
        public ActionResult Detail()
        {
            var VideoGame = 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 Characters() {"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 + ")";
            }
        }
    }
}

I've tried with and with out the var in front of the VideoGame = new VideoGame(). without just gives more errors about expecting stuff on like line 53

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there! You did just fine right up until the Characters part. But you have coded in new Characters() this means that C# is going to try and create an instance of the class Characters. But you don't have a class named Characters. This is why you're receiving that error. Because it can't find the class you're referencing it thinks you may have forgotten to include the file that contains that class.

What you do have, though is a property named Characters on the VideoGame class. This property should be an array of strings.

This is how I did it:

Characters = new string[] {"Mario", "Princess Peach","Bowser","Toad", "Yoshi"}

This line sets the property of the VideoGame class named Characters to an array of strings which the code started out with.

Hope this helps! :sparkles: