Page.Tostring () se comporte un peu bizarre dans .net 1.1?
Question
J'ai un contrôle où je dois vérifier dans quelle page je suis, afin de pouvoir définir une certaine variable en conséquence.
string pageName = this.Page.ToString();
switch (pageName)
{
case "ASP.foo_bar_aspx": doSomething(); break;
default: doSomethingElse(); break;
}
Cela fonctionne très bien localement et sur certains vecteurs de développement. Toutefois, lorsque je le mets en ligne, il ne fonctionne plus car je ne reçois pas ASP.foo_bar_aspx
mais _ASP.foo_bar_aspx
.
(remarquez le trait de soulignement dans la version en direct)
Pourquoi agit-il de cette façon, puis-je le régler d'une manière ou d'une autre?
La solution
Vous ne pouvez pas compter sur des noms générés automatiquement. Utilisez plutôt des types, par exemple:
if (Page is FooBar) { ... }
Autres conseils
Cela semble être un moyen vraiment risqué d’obtenir la demande actuelle. Avez-vous déjà essayé d'utiliser la variable HttpContext.Current.Request.FilePath
ou un autre HttpContext.Current.Request ...
à la place?