1

我有一个带有扩展方法的布局,该方法采用菜单项列表并从中创建 HTML。在控制器动作中,我有:

public ActionResult Article(string rk)
        {
            Viewbag.menuItems = _menu.MenuItems("00");
            ..
            return View(vm);
        }

我在许多动作中重复了这一点。然后在 _layout 我有:

Html.NavLinks(ViewBag.menuItems)

我意识到我们应该为视图提供所需的内容,但在这种情况下,如果视图从操作中提取部分细节会更好吗?我问这个是因为我只有一个需要数据的布局,我认为在那里编写代码可能比在 20 多个操作中检索数据并发送到视图更好。

如果它从布局中拉出,那么 MVC 会缓存操作的结果吗?

如果从一个动作中提取结果更好,那么我该怎么做呢?

4

1 回答 1

2

如果它从布局中拉出,那么 MVC 会缓存操作的结果吗?

它不会缓存操作的结果,不,它会在每次请求时获取它们。

如果从一个动作中提取结果更好,那么我该怎么做呢?

而不是“从动作中拉出它们”,只需将它们放在您从控制器发回的模型中,然后您就可以在视图中使用它们。

于 2012-05-17T16:42:57.327 回答