c#MVC5加载菜单项的正确位置是什么

时间:2015-04-29 17:56:47

标签: c# asp.net-mvc razor entity-framework-6

我有一点问题,你能解释一下使用MVC5和Entity Framework6从DB加载菜单项的最佳做法是什么。菜单和本地化对象只能加载一次,然后才能从一些全局可用的集合中使用。在网站发布后它们不会改变很多,所以我只想实现一些Update()方法,我会在必要时调用它......

1 个答案:

答案 0 :(得分:2)

使用子操作。

public class FooController : Controller
{
    ...

    [ChildActionOnly]
    public ActionResult SiteMenu()
    {
        // load menu items however you need to

        return PartialView("_SiteMenu", menuModel);
    }
}

<强> /Views/Shared/_SiteMenu.cshtml

@model Namespace.To.MenuModel

<!-- render your menu here -->

<强> /Views/Shared/_Layout.cshtml

<!-- wherever you want the menu to display -->
@Html.Action("SiteMenu", "Foo")

如果要缓存结果,那么不必从每个请求的数据库中提取菜单,那么您可以像对待任何其他操作一样使用子操作的OutputCache属性。