O controlador para o caminho… não foi encontrado ou não implementa o IController

Estou escrevendo um aplicativo usando o ASP.NET MVC 5 usando c #. Eu preciso adicionar um menu global no lado superior direito do aplicativo. Fui avisadooutro SO usar ação comChildActionOnly atributo.

Então aqui está o que eu fiz.

Eu criei um BaseController como este

public class BaseController : Controller
{

    [ChildActionOnly]
    public ActionResult ClientsMenu()
    {
        using (SomeContext db = new SomeContext())
        {
            return PartialView(db.Database.SqlQuery<Client>("SELECT * FROM clients").ToList());
        }
    }

}

Então eu herdei todos os meus controladores deBaseController igual a

public class TasksController : BaseController
{

    public ActionResult Index(int ClientId)
    {
        ...
        return View();
    }

    public ActionResult Show(int SurveyId)
    {
        ...
        return View();
    }

}

Para renderizar oClientsMenu no meu layout eu adicionei o seguinte código

@Html.Action("ClientsMenu", "Menus")

Agora, quando executo meu aplicativo, recebo o seguinte erro

The controller for path '/Tasks/Index' was not found or does not implement IController.

Quando eu removo@Html.Action("ClientsMenu", "Menus") do layout, tudo funciona bem, mas o menu global não aparece, é claro.

O que posso fazer para resolver esse problema?

Atualizada Aqui está o que eu fiz após o feedback que recebi dos comentários abaixo

public class TasksController : Controller
{
    [ChildActionOnly]
    public ActionResult ClientsMenu()
    {
        using (SomeContext db = new SomeContext())
        {
            return PartialView(db.Database.SqlQuery<Client>("SELECT * FROM clients").ToList());
        }
    }

    public ActionResult Index(int ClientId)
    {
        ...
        return View();
    }

    public ActionResult Show(int SurveyId)
    {
        ...
        return View();
    }

}

mas ainda o mesmo erro

questionAnswers(1)

yourAnswerToTheQuestion