从DB到_Layout.cshtml的MVC传递列表

时间:2017-12-05 20:16:40

标签: c# asp.net-mvc razor

我是MVC的新手并试图找出如何将一些数据传递给_Layout.cshtml视图。这将是我的数据库中需要显示在每个页面上的数据。

我采取的方法是通过局部视图。不确定这是否是最好的方法,但它会导致错误。 是否有更好的方法或如何解决此错误?

我简化了我的项目,以显示我使用局部视图方法收到的错误。

错误:路径控制器' /'未找到或未实现IController。

_Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>

@{Html.RenderAction("getMenuList", "MenuView"); }


<div class="container body-content">
    @RenderBody()


@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)

MenuView.cshtml

@model System.Collections.Generic.List<PartialViewTest.Models.MenuItems>

<ul>
    @foreach (var _Menu in Model)
    {
        <li>@_Menu.LinkName</li>
    }
</ul>

MenuController.cs

namespace PartialViewTest.Controllers
{
    public class MenuController : Controller
    {

        public PartialViewResult getMenuList()
        {
            System.Collections.Generic.List<Models.MenuItems> _list;
            _list = new System.Collections.Generic.List<Models.MenuItems>
            {
                new PartialViewTest.Models.MenuItems{ LinkName = "Google", LinkURL = "http://google.com"},
                new PartialViewTest.Models.MenuItems{ LinkName = "CNN", LinkURL = "http://cnn.com"}
            };


            return PartialView("getMenuList", _list);
        }

        // GET: Menu
        public ActionResult Index()
        {
            return View();
        }
    }
}

MenuItem.cs

namespace PartialViewTest.Models
{
    public class MenuItems
    {
       public string LinkName { get; set; }
       public string LinkURL { get; set; }
    }
}

0 个答案:

没有答案