2008-10-02 4 views
0

J'ai un contrôle où je dois vérifier dans quelle page je suis, ainsi je peux placer une certaine variable en conséquence.Page.Tostring() se comporte un peu bizarre dans .net 1.1?

string pageName = this.Page.ToString(); 
switch (pageName) 
{ 
case "ASP.foo_bar_aspx": doSomething(); break; 
default: doSomethingElse(); break; 
} 

cela fonctionne bien au niveau local et sur certains developmentservers, mais quand je l'ai mis en direct, il a cessé de travailler parce que je ne suis pas ASP.foo_bar_aspx mais _ASP.foo_bar_aspx (notez que le trait de soulignement dans la version live) Pourquoi agit-elle Ainsi, puis-je le définir d'une manière ou d'une autre?

Répondre

2

Vous ne pouvez pas compter sur les noms générés automatiquement. Utilisez des types plutôt que, par exemple:

if (Page is FooBar) { ... } 
1

Cela semble être une façon vraiment douteuse d'obtenir la requête en cours. Avez-vous essayé d'utiliser HttpContext.Current.Request.FilePath ou une autre variable HttpContext.Current.Request... à la place?

+0

Ou System.IO.Path.GetFileName (HttpContext.Current.Request.FilePath) si vous voulez juste le nom du fichier – Oli

Questions connexes