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