Различные контроллеры с одинаковым именем в двух разных областях приводят к конфликту маршрутизации - PullRequest
2 голосов
/ 26 апреля 2010

У меня есть две области:

ControlPanel и Patients.

Оба имеют контроллер под названием ProblemController, которые похожи только по названию. Желаемыми результатами будут маршруты, которые приводят к / controlpanel / problem => MyApp.Areas.ControlPanel.Controllers.ProblemsController и / Patient / problem => MyApp.Areas.Patients.Controllers.ProblemsController.

Каждый из них настроен следующим образом:

public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "**Area Name Here**_default",
                "**Area Name Here**/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }

где ***** Имя зоны Здесь ***** - это либо ControlPanel, либо Patients.

Когда я захожу в / пациентов / проблемы / создать (например), я получаю 404, где ошибка маршрутизации говорит: A public action method 'create' was not found on controller 'MyApp.Areas.ControlPanel.Controllers.ProblemsController'.

Я не уверен, что делаю неправильно.

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

На самом деле, проблема в Autofac 2.1 AutofacControllerFactory. Маршруты работают правильно, но автофаку с трудом удается найти правильный контроллер.

Для тех, кто использует Autofac и MVC 2.0, Autofac 2.1 не поддерживает области. Если ваш проект достаточно прост, Autofac может появиться для работы с областями, но он начнет разрушаться, когда ваши области и контроллеры станут более изощренными.

Билет на полную поддержку в области был закрыт, и соответствующий код зарегистрирован, но, насколько я могу судить, он не будет выпущен до 2.2. Я собираюсь попробовать построить из ствола, и я сообщу, как оно идет.

UPDATE Да, все выглядит хорошо, используя Autofac, собранный из багажника. Надеюсь, 2.2 будет официально выпущен в ближайшее время.

0 голосов
/ 26 апреля 2010

Вы пытались использовать перегрузку с параметром namespaces?

ASP.NET MVC 2 Preview 2: проблема дублирования областей контроллера

...