У меня есть проект ASP.NET MVC 4.0 с уже существующими MVC-контроллерами, однако я бы хотел использовать класс ApiController
для некоторых новых функций.ControllerFactory для ApiController в MVC4
Существующая фабрика-контроллер возвращает объект IController
, который ApiController
не наследует. Каким был бы лучший способ сделать еще один завод контроллера для ApiController
производных контроллеров и заставить обе фабрики сосуществовать?
ControllerBuilder.Current.SetControllerFactory((IControllerFactory)new BuilderControllers.BuilderControllerFactory());
public class BuilderControllerFactory :IControllerFactory
{
public IController CreateController(RequestContext requestContext, string controllerName)
{
string controllerType = string.Format("BuilderControllers.{0}Controller", controllerName);
IController controller = null;
try
{
controller = Activator.CreateInstance(Type.GetType(controllerType)) as IController;
}
catch (System.Exception x)
{
//-- handle any failed requests --
}
return controller;
}
}
Tbh Я довольно новичок в asp.net mvc. Я начинаю исследовать ApiController, потому что они, похоже, лучше адаптируются к Backbone.js. Я получаю ошибку компиляции в вашем коде «System.Web.Http.GlobalConfiguration.Configuration» является «свойством», но используется как «тип» –
, какую именно версию пакета mvc вы используете. и что такое версия web api, которую вы используете. вы используете пакеты nuget или ссылки GAC? – Gurpreet
mvc: 4.0.01 api: 2.0.0.0 Я использую ссылки GAC –