1
我目前正在使用Ninject創建MVC3應用程序。我有兩個控制器通過Ninject注入一個存儲庫,這兩個控制器在我的本地機器上都能正常工作。只有在使用MVC 3應用程序的特定環境中獲取Ninject的「無控制器返回的錯誤」
然而,當我將它們部署到我的遠程Web服務器,我得到The IControllerFactory 'Inventory.Infrastructure.NinjectControllerFactory' did not return a controller for the name 'GetOptions'.
爲一個錯誤,但只有當我打的控制器之一 - 其他作品的罰款。有什麼我在這裏做錯了嗎?我對Ninject和DI相當陌生,所以如果還有其他方法我應該繼續討論,請告訴我。謝謝!
這裏是我的控制器廠
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel ninjectKernel;
public NinjectControllerFactory()
{
ninjectKernel = new StandardKernel();
AddBindings();
}
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);
}
private void AddBindings()
{
ninjectKernel.Bind<IVehicleRepository>().To<EFVehicleRepository>();
}
}
在的Application_Start我:
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
而在去年,我的控制器是
public class InventoryAPIController : Controller
{
IVehicleRepository repository;
public InventoryAPIController(IVehicleRepository repo)
{
repository = repo;
}
}
和
public class VehicleController : Controller
{
IVehicleRepository repository;
public VehicleController(IVehicleRepository repo)
{
repository = repo;
}
}
啊我沒有意識到有一個MVC3特定版本,明天會試試,謝謝! – codechinchilla
它的工作原理!再次感謝。 – codechinchilla