从ASP.NET MVC的Layout页面中的DB获取数据

Uma*_*rif 1 asp.net-mvc-4

我想在ASP.NET MVC的Layout.cshtml页面中从数据库中获取数据后,在导航栏中加载数据.但我面临一个问题,如何在布局页面中获取数据,因为没有与Web窗体中的Code Behind文件不同的Controller.任何人请帮助我: - 如何在数据模型中存储数据 - 如何将其传递给布局页面提前感谢.

Chr*_*att 6

使用子动作:

public class FooController : Controller
{
    ...

    [ChildActionOnly]
    public ActionResult NavBar()
    {
        var navbar = // query your database;
        return PartialView("_NavBar", navbar);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后创建局部视图Views\Shared\_NavBar.cshtml并将HTML放在那里.您的模型将是您在子操作中从数据库中查询的内容.

最后在你的布局中:

@Html.Action("NavBar", "Foo")
Run Code Online (Sandbox Code Playgroud)