El enlace de Ninject con el repositorio genérico MVC devuelve un error en el Constructor sin parámetros

Estoy tratando de usar un repositorio genérico bastante simple para varias listas de administración en una aplicación. La funcionalidad para los usuarios administradores es solo CRUD para mantener las listas actualizadas para su uso en otros lugares como búsquedas.

Sigo recibiendo un error de la forma:

Se produjo un error al intentar crear un controlador de tipo 'WhatWorks.Controllers.AchievementController'. Asegúrese de que el controlador tenga un constructor público sin parámetros.

He leído una gran cantidad de publicaciones en SO y blogs encontradas a través de Google pero no puedo encontrar una respuesta (al menos nada que tenga sentido para mí como una respuesta que puede ser otro problema ...)

Mi código es el siguiente:

Controlador

public class AchievementController : BootstrapBaseController
{
    private readonly IAdminRepository<tAchievement> _repo;

    public AchievementController(IAdminRepository<tAchievement> _repo)
    {
        this._repo = _repo;
    }

ViewModel

public partial class AchievementListViewModel
{
    public int Id { get; set; }
    public string achievement { get; set; }
}

Interfaz

public interface IAdminRepository<TEntity> : IDisposable 
                    where TEntity : class                            
{
    IEnumerable<TEntity> Get();
    TEntity GetByID(int id);
    void Insert(TEntity entity);
    void Delete(TEntity entity);
    void Update(TEntity entity);
    void Save();
}

Repositorio

public class AdminRepository<T> : IAdminRepository<T>
                        where T : class
    {
        private WhatWorksEntities objContext;

        public AdminRepository()
        {
            objContext = new WhatWorksEntities();
        }

        public IEnumerable<T> Get()
        {
            return objContext.Set<T>().ToList();
        }

        etc.

Unión

kernel.Bind(typeof(IAdminRepository<>)).To(typeof(AdminRepository<>));

También he intentado enlazar con una línea adicional sin ningún efecto:

kernel.Bind<IAdminRepository<tAchievement>>().To<AdminRepository<tAchievement>>();

Estoy asumiendo que me estoy perdiendo algo simple.

Tengo Ninject, Ninject.Web.MVC y Ninject.Web.Common en mis referencias, todas tomadas de NuGet.

Stack Trace es el siguiente:

[MissingMethodException: No parameterless constructor defined for this object.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +113
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +83
   System.Activator.CreateInstance(Type type) +6
   System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +55

[InvalidOperationException: An error occurred when trying to create a controller of type 'WhatWorks.Controllers.AchievementController'. Make sure that the controller has a parameterless public constructor.]
   System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +179
   System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +80
   System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74
   System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +197
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +49
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +301
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

_____________EDIT con respuesta parcial_____________

Habiendo recreado un proyecto desde cero y con el mismo error, noté que las versiones de algunos de los paquetes adicionales que estaba usando habían cambiado. Estoy usando "Twitter Bootstrap for MVC" de Eric Hexter como mi pantalla principal y esto está activando una versión posterior de Twitter Bootstrap de la que he usado anteriormente. No estoy seguro de si esto está causando el problema, pero el diseño de las carpetas en un proyecto de trabajo anterior es diferente del nuevo.

Esta respuesta me ha dado un indicador decente después de los comentarios de Trevor Pilley:Ninject + MVC3 no está inyectando en el controlador

En mi proyecto de trabajo anterior, lo siguiente estaba en el archivo Web.config, pero no en el nuevo proyecto. Si lo agrego, el código funciona pero todavía hay un problema con el diseño de Twitter Bootstrap, probablemente de los nuevos archivos .css. Dejaré la pregunta abierta en caso de que alguien pueda mejorar esto como respuesta.

(Etiqueta de cierre de Entity Framework a la izquierda para mostrar la ubicación en Web.config)

  </entityFramework>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

_________EDIT global.asax ______________________

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles);
        WhatWorksRouteConfig.RegisterRoutes(RouteTable.Routes);
        AutoMapperConfiguration.Configure();
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta