ASP.Net маршрутизация с помощью веб-форм - PullRequest
0 голосов
/ 10 марта 2010

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

//I want to catch existing calls to .aspx pages, but force them through  
// a route, so I can eventually drop the .aspx extension  
new Route("{page}.aspx", new MyCustomRoute());

Это вообще не работает, так как вызовы [SomePage] .aspx никогда не отключают этот маршрут ... Если я изменю маршрут так, чтобы он выглядел следующим образом:

//Same thing sans .aspx extension
new Route("{page}", new MyCustomRoute());

Все звонки на [SomePage] принимаются. Есть идеи?

1 Ответ

2 голосов
/ 10 марта 2010

Хорошо, теперь я чувствую себя глупо ...

Оказывается, в классе RouteCollection есть небольшое свойство, называемое RouteExistingFiles, которое по умолчанию имеет значение false. Очевидно, что маршрутизация ASP.Net отдает приоритет существующим файлам перед их передачей в маршрутизацию, поэтому любые вызовы существующих страниц, очевидно, не будут обрабатываться моими маршрутами. Установка этого свойства в true решает мою проблему, хотя все может иметь непредвиденные побочные эффекты, о которых я еще не подозревал.

...