Сначала немного о том, зачем мне это нужно.Я в настоящее время создаю CMS.Если вы представляете, что в этой CMS есть PageController, который предоставляет всю информацию, необходимую для стандартной страницы, контент, навигацию и т. Д.
Теперь CMS можно изменить для каждого клиента, использующего ее, и если клиенту требуется дополнительная / другая информацияна их страницах я хотел бы переопределить PageController по умолчанию на другой, специально разработанный для их нужд.
Вот что я пробовал:
Базовый контроллер
namespace CMS.Core.Controllers {
public class PageController : Controller {
public virtual ActionResult DisplayHome() {
// Logic
return View();
}
}
}
Клиентский контроллер
namespace CMS.ClientCore.Controllers {
public class PageController : Core.Controllers.PageController {
public override ActionResult DisplayHome() {
return Content("Client Home"); // Just for testing
}
}
}
Маршрут
routes.MapRouteInLowercase(
"Home",
"",
new { controller = "Page", action = "DisplayHome" },
new[] { "CMS.Core.Controllers", "CMS.ClientCore.Controllers" }
);
Ошибка
Запрос 'Page' обнаружил следующие подходящие контроллеры: PCCMS.Core.Controllers.PageController
PCCMS.ClientCore.Controllers.PageController
Причинаошибки очевидны, так есть ли альтернативный способ переопределить действие контроллера / контроллера?