我有一个带有扩展方法的布局,该方法采用菜单项列表并从中创建 HTML。在控制器动作中,我有:
public ActionResult Article(string rk)
{
Viewbag.menuItems = _menu.MenuItems("00");
..
return View(vm);
}
我在许多动作中重复了这一点。然后在 _layout 我有:
Html.NavLinks(ViewBag.menuItems)
我意识到我们应该为视图提供所需的内容,但在这种情况下,如果视图从操作中提取部分细节会更好吗?我问这个是因为我只有一个需要数据的布局,我认为在那里编写代码可能比在 20 多个操作中检索数据并发送到视图更好。
如果它从布局中拉出,那么 MVC 会缓存操作的结果吗?
如果从一个动作中提取结果更好,那么我该怎么做呢?