У меня есть базовый контроллер ASP.Net Core, где я хочу, чтобы он выполнял другую операцию в зависимости от маршрута. Моя идея состояла в том, чтобы отобразить разные маршруты для использования одного и того же контроллера, где каждое сопоставление будет устанавливать разные режимы в зависимости от маршрута. http://Website/Route1 будет соответствовать Mode1, а http://Website/Route2 будет соответствовать Mode2
routes.MapRoute(
name: “Route1”,
template: “Route1” + "/{*queryParameters}",
defaults: new { controller = "GenericProcess", action = "RunGenericProcess", mode = “Mode1”, }
);
routes.MapRoute(
name: “Route2”,
template: “Route2” + "/{*queryParameters}",
defaults: new { controller = "GenericProcess", action = "RunGenericProcess", mode = “Mode2”, }
);
Это работает, когда пользователь не предоставляет параметр режима, но любой может обойти значения, которые я установил как значения по умолчанию, явно предоставив параметр режима.
http://Website/Route1/?mode=Mode2
Можно ли как-то указать жесткие значения для сопоставления маршрута вместо значений по умолчанию, которые могут быть переопределены? Есть ли другой способ для достижения моей конечной цели, а именно создание многоцелевого контроллера, который позволяет мне определять режим на основе маршрута?