Проблемы с маршрутизацией ASP.NET - PullRequest
1 голос
/ 07 августа 2011

У меня проблема с маршрутизацией ASP .NET. Я не могу сказать, является ли это ошибкой в ​​коде Microsoft или я просто неправильно ее использую.

Сценарий в основном такой:

У меня есть собственный маршрут, который я хочу добавить. Кроме того, я регистрирую ASP .NET DynamicDataRoute s. Если я пропущу свой собственный маршрут, все ASP .NET DynamicDataRoute работают нормально. Как только я добавлю это перед моим DynamicDataRoute:

routes.Add(new Route("IgnoreDirectory/{*pathInfo}"), new StopRoutingHandler()));

все ссылки DynamicHyper сгенерированные DynamicData генерируются с неправильным корневым URL, как этот:

http://localhost/IgnoreDirectory/MyTable/List

, который должен быть (и был, пока я не добавил свой собственный маршрут)

http://localhost/MyDynamicData/MyTable/List

Что странно, так это то, что я добавляю свой DynamicDataRoute для ПОЛНОСТЬЮ другого пути:

routes.Add(new DynamicDataRoute("MyDynamicData/{{table}}/{{action}}")
                {
                    Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
                    Model = model
                });

Почему при добавлении маршрута для IgnoreDirectory мои маршруты DynamicData используют базовый URL-адрес IgnoreDirectory ????

Не могу понять.

1 Ответ

2 голосов
/ 08 августа 2011

Я выхожу на конечности здесь, но я думаю, что это связано с двумя вещами. Порядок хранения маршрутов в RouteTable важен тем, что приложение будет использовать первый найденный маршрут для соответствия URL.

Я думаю, что здесь может происходить то, что DynamicDataRoute строится на маршруте, который вы вставляете перед DynamicDataRoute в таблице маршрутов.

Первое, что я хотел бы сделать, это переместить добавление маршрута после добавления DynamicDataRoute.

Надеюсь, это поможет ...

...