Вопрос

Можно ли сопоставить маршрут с помощью MapRoute и указать общий контроллер, например

        context.MapRoute(
            "Dashboard_Edit", // Route name
            "dashboard/edit/{*pagePath}",
            new { controller = "Dashboard`1", action = "edit", pagePath = "home" }
            );
Это было полезно?

Решение

К сожалению, это не допускается при использовании фабрики контроллера по умолчанию.Тип «Dashboard`1» относится к открытому универсальному типу и не может быть создан.Другими словами, при использовании фабрики контроллеров по умолчанию единственными допустимыми значениями для «контроллера» являются те, которые могут соответствовать следующему псевдосинтаксису:

IController c = new SomeControllerType();

А SomeControllerType должен быть действительным (но без суффикса «Контроллер» или пространства имен) и иметь конструктор без параметров.

Вы всегда можете написать собственную фабрику контроллеров, которая имеет более расширенную функциональность и понимает, как создавать универсальные типы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top