2010-06-04 4 views
2

Je tente d'utiliser la fonctionnalité MapPageRoute dans Visual Studio 2010 et .NET Framework 4.0 avec une application Web asps asp.net. Ce que j'ai remarqué est que si je définis un itinéraire de page appelé "Default" comme ci-dessous et la page Default.aspx existe dans le projet, alors le chemin ne fonctionne pas.asp.net Webforms MapPageRoute ordre de priorité

routes.MapPageRoute("Default", "default.aspx", "~/Page2.aspx"); 
routes.MapPageRoute("Test", "test.aspx", "~/Page2.aspx"); 

Si je change le nom du Default.aspx dans le projet Default_1.aspx, alors la route fonctionne très bien.

Il semble y avoir un certain ordre de priorité. Y at-il un moyen de faire d'abord mes définitions de route évalué de sorte que je ne dois pas renommer mes pages à utiliser le moteur de routage?

Répondre

3

Il existe une propriété sur le RouteCollection appelée RouteExistingFiles, qui est définie sur false par défaut. Cela explique pourquoi la route par défaut ne fonctionne pas si vous avez une page default.aspx.

Si vous insérez routes.RouteExistingFiles = true; avant vos lignes de code, les routes seront prioritaires. Je ne suis pas sûr à 100% s'il retomberait dans les fichiers s'il ne pouvait pas router - je suppose que cela dépend des routes que vous avez configurées ...

+1

setting routes.RouteExistingFiles = true a fait l'affaire. Merci. – moke