This is a question about best-practices in ASP.NET MVC

I've created a website in MVC. Because every page has a menu, I thought I'd create a base controller class which all MVC Controllers in the project inherit from. In The Initialize() function of the base controller class I would then load my Menu.
In that way, I could keep my logic for loading the menu in one place and have it executed automatically.

Code (C#):

```
public abstract class BaseController : System.Web.Mvc.Controller
{
    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {
        //Load the menu:
        ViewBag.HeaderModel = LoadMenu();
    }
}

public class HomeController : BaseController
{
    public ActionResult Index()
    {
        //the menu is loaded by the base controller, so we can just return the view here
        return View();
    }
}

```

That works like a charm. Now here's the problem.

In my View, I present a list of the five latest Articles on the website. Since the Articles have their own logic and their own section on the website, I've created an ArticleController, which inherits from BaseController as well, with an action that displays a PartialResult with my five latest Articles.

```
public class ArticlesController : BaseController
{
    public ActionResult DisplayLatestArticles()
    {
       var model = ... //abbreviated, this loads the latest articles
       return PartialView("LatestArticles", model);
    }
}

```

And the method is called like this in the View:

```
@Html.Action("Index", new { controller = "Articles" })

```

But this has one drawback: namely the Initialize() function on my Base Controller is executed twice, which loads the menu two times, which is undesirable (for performance reasons). So far I haven't been able to find a way to avoid this behavior.

What do you suggest in so far as refactoring this code? I want to make sure my logic to load my menu stays somewhere so it gets called automatically, without me or any other developers on the project having to worry about it. I prefer keeping my logic to display the latest Articles in the ArticlesController so everything to do with Articles is kept in its own Controller.

So, how best to proceed?