Page.Tostring () se comporta un poco raro en .net 1.1?
Pregunta
Tengo un control donde tengo que verificar en qué página estoy, por lo que puedo establecer una determinada variable en consecuencia.
string pageName = this.Page.ToString();
switch (pageName)
{
case "ASP.foo_bar_aspx": doSomething(); break;
default: doSomethingElse(); break;
}
esto funciona bien localmente y en algunos desarrollos, sin embargo, cuando lo puse en vivo, dejó de funcionar porque no obtengo ASP.foo_bar_aspx
sino _ASP.foo_bar_aspx
(note el guión bajo en la versión en vivo)
¿Por qué actúa de esa manera? ¿Puedo configurarlo de alguna manera?
Solución
No puedes confiar en los nombres generados automáticamente. Utilice tipos en su lugar, por ejemplo:
if (Page is FooBar) { ... }
Otros consejos
Eso parece ser una forma realmente poco fiable de obtener la solicitud actual. ¿Ha intentado usar HttpContext.Current.Request.FilePath
u otra HttpContext.Current.Request ...
en su lugar?