ASP.NET MVC PartialView with List

asp.net-mvc, c#, list, partial-views

Solution

If you want to interpret those partials as some static sections inside your HTML, then I would suggest you to call `Html.Action()` which returns your partials:

@Html.Action("GetPageHeader","Home")
@Html.Action("GetPageCategories","Home")

HomeController

[HttpGet]
public ActionResult GetPageHeader()
{
   return PartialView(@"~/Views/Shared/_PageHeader.cshtml");
}

[HttpGet]
public ActionResult GetPageCategories()
{
   var categories = databaseContext.GetAllCategories(); //Get your categs
   return PartialView(@"~/Views/Shared/_Categories.cshtml",categories);
}

Problem

I am at my first MVC project. I want to create a page with a header and in this header to be placed a partial view with category list. This is what I did so far: I created the master page (_Home.cshtml). Than in Shared folder I created a View (Category.cshtml). See my picture. My Category.cshtml content: ``` @model IEnumerable<ArtSchool.Models.Category> <p> @Html.ActionLink("Create New", "Create") </p> <table> <tr> <th> @Html.DisplayNameFor(model => model.Name) </th> <th> @Html.DisplayNameFor(model => model.Visible) </th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Name) </td> <td> @Html.DisplayFor(modelItem => item.Visible) </td> <td> @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | @Html.ActionLink("Details", "Details", new { id=item.ID }) | @Html.ActionLink("Delete", "Delete", new { id=item.ID }) </td> </tr> ``` } My master page file: ``` @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>_Home</title> </head> <body> <div> @Html.Partial("ASCX/Header") @Html.Partial("Category") @RenderBody() </div> ``` When I run the project I got the error: I know that is a newbie question but it's my first MVC project. Thanks!

Original source