У меня есть существующий проект ASP.NET MVC 4. Я хочу добавить в проект WebApi2. Поэтому я устанавливаю WebApi2 в Nuget и создаю ApiController. Когда я запущен проект, то я получил ошибкуДобавить WebApi 2 в существующий проект - Ninject
«MvcApplication.Infrastructure.NinjectControllerFactory» The IControllerFactory не возвращает контроллер для имени «API».
Мои NinjectControllerFactory:
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel ninjectKernel;
public NinjectControllerFactory()
{
ninjectKernel = KernelSingleton.Instance.GetStandardKernel();
}
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
return controllerType == null
? null
: (IController)ninjectKernel.Get(controllerType);
}
}
EDIT
WebApiConfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// TODO: Add any additional configuration code.
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Главный RouteConfig пуст, потому что у меня есть две области.
internal static class RouteConfig
{
internal static void RegisterRoutes(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
internal static class RouteConfig
{
internal static void RegisterRoutes(AreaRegistrationContext context)
{
context.MapRoute(
"User_default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
Просьба указать маршруты WebApi и маршруты MVC. Похоже, проблема там. – NightOwl888
@ NightOwl888 Добавлено. – thenewgai