Маршрутизация неопределенных контроллеров - PullRequest
2 голосов
/ 31 марта 2012

Как бы вы настроили маршрутизацию в ASP.NET MVC для маршрутизации путей с неопределенными контроллерами на конкретный контроллер.

Например, у меня есть UserController, поэтому я бы хотел http://example.com/user для маршрутизации в UserController, но я бы хотел http://example.com/supercoolproject для маршрутизации в ProjectController, чтобы найти элемент Super Cool Project

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Я считаю, что вы не должны использовать http://example.com/supercoolproject адрес. Вместо этого оно должно быть http://example.com/project/supercool,, но если вы хотите использовать адрес в формате http://example.com/{projectname}project, вы можете определить правило в global.asax следующим образом:

routes.MapRoute(
    "ProductByNameRule",
    "{projectName}project",
    new { controller = "Project", action = "ByName" }
);

и имеют

public ActionResult ByName(string projectName) {
}

в ProjectController.

0 голосов
/ 31 марта 2012

Для этого можно создать настраиваемую фабрику контроллеров.

http://keyvan.io/custom-controller-factory-in-asp-net-mvc

В методе CreateController реализации IControllerFactory фабрики настраиваемых контроллеров сначала попытайтесь создать контроллер с помощью DefaultControllerFactory, затемесли это не удается, создайте экземпляр вашего резервного контроллера и верните его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...