Перезапись URL прежней версии с параметрами строки запроса

Я посмотрел на ASP.NET MVC маршрутизация URL прежней версии, передающих querystring Ids действиям контроллера и нескольким другим подобным сообщениям для маршрутизации URL прежней версии, но я не могу закончить ошибку "RouteData, должен содержать объект, названный 'контроллером' со значением непустой строки". Поиск этого на строке не дал мне подсказок для решения моей проблемы.

Я реализовал Устаревший класс маршрутизации, описанный в ссылке выше, и это - то, что я определил в таблице маршрутизации:

        routes.Add(
            "Legacy", 
            new LegacyRoute("fooref.aspx", 
            "FooRef", 
            new LegacyRouteHandler())
        );

        routes.MapRoute(
            "FooRef",
            "{controller}/{action}",
            new
            {
                controller = "Home",
                action = "Index",
                foo_id = UrlParameter.Optional,
                bar_id = UrlParameter.Optional
            }
        );

Когда я использую отладчик маршрута Phil Haack, он указывает, что fooref.aspx имеет соответствие, но когда я выключаю отладчик маршрута, я получаю ошибку выше. Если я инвертирую порядок оператора, я получаю "Ресурс, не найденный" для/ctprefer.aspx, который имеет смысл - таким образом, это, кажется, находит, что как допустимый маршрут, когда вставляется в другой порядок.

Где я должен объявить эту недостающую ссылку контроллера?

Направляющие требования изменились для ASP.NET MVC 2 RTM?

8
задан Community 23 May 2017 в 12:01
поделиться