Как мне настроить универсальный контроллер в ASP.NET MVC?
-
21-08-2019 - |
Вопрос
Я знаю, что это, возможно, не соответствует истинному духу MVC, но я просто хочу иметь единый глобальный контроллер, который всегда вызывается независимо от что url-адрес выглядит следующим образом.Например, это могло бы быть:
http://myserver.com/anything/at/all/here.fun?happy=yes&sad=no#yippie
... и я хочу, чтобы это было передано моему единственному контроллеру.Я намерен получить путь программно и обработать его сам - другими словами, мне вообще не нужна никакая маршрутизация.
Я открыл файл global.asax и нашел, где зарегистрированы маршруты, но я просто не знаю, что указать для параметра 'url' в MapRoute:
routes.MapRoute( "Global", "", new { controller = "Global", action = "Index" } );
Это (с пустым 'url') отлично работает для пути по умолчанию '/', но если я изменю его на что угодно, я получу файл, который не найден, когда я хочу, чтобы он обрабатывался Любой url-адрес.Я также попробовал "*" и т.д.но это не сработало.
Я не смог найти какой-либо определенной ссылки на формат, который принимает параметр url.
Решение
Как насчет:
routes.MapRoute("Global", "{*url}", new { controller = "Global", action = "Index" } );
От это вопрос
Другие советы
Вы ведь не удалили значение по умолчанию, не так ли?Тебе нужно сохранить это.Может быть, попробовать:
routes.MapRoute("Global", "/", new { controller = "Global", action = "Index" });