Инъекционное связывание с универсальным репозиторием MVC возвращает ошибку на конструкторе без параметров

Я пытаюсь использовать довольно простой общий репозиторий для нескольких списков администрирования в приложении. Функциональность для пользователей с правами администратора - это просто CRUD, чтобы обновлять списки для использования в других местах в качестве поисков.

Я продолжаю получать ошибку формы:

Произошла ошибка при попытке создать контроллер типа 'WhatWorks.Controllers.AchievementController», Убедитесь, что у контроллера есть открытый конструктор без параметров.

Я прочитал очень много постов на SO и блогов, найденных через Google, но я могуне могу найти ответ (по крайней мере, ничего, что имеет смысл для меня как ответ, который может быть другой проблемой ...)

Мой код выглядит следующим образом:

контроллер

public class AchievementController : BootstrapBaseController
{
    private readonly IAdminRepository _repo;

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

ViewModel

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

Интерфейс

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

вместилище

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

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

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

        etc.

BindingI»

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

мы также пытались связать с дополнительной строкой безрезультатно: I '

kernel.Bind().To();

Я предполагаю, что яМне не хватает чего-то простого.

У меня есть ссылки на Ninject, Ninject.Web.MVC и Ninject.Web.Common - все они взяты из NuGet.

Трассировка стека выглядит следующим образом:

[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 с частичным ответом _____________

Воссоздав проект с нуля и получив ту же ошибку, я заметил, что версии нескольких дополнительных пакетов, которые я использовал, изменились. Я'я используюTwitter Bootstrap для MVC " Эрик Хекстер в качестве моего основного дисплея, и это приводит к более поздней версии Twitter Bootstrap, чем ямы использовали ранее. Я'Я не уверен, вызывает ли это проблему, но расположение папок в старом рабочем проекте отличается от нового.

Этот ответ дал мне достойный указатель после комментариев Тревора Пилли:Ninject + MVC3 не вводится в контроллер

В моем более старом рабочем проекте следующее было в файле Web.config, но не в новом проекте. Если я добавлю его, код работает, но все еще есть проблема с макетом Twitter Bootstrap - возможно, из новых файлов .css - яЯ оставлю вопрос открытым на тот случай, если кто-нибудь сможет улучшить его в качестве ответа.

(Закрывающий тег Entity Framework оставлен, чтобы показать местоположение в Web.config)

  
  
    
      
        
        
      
    
  

_________ 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();
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос