Page.Tostring () si comporta in modo un po 'strano in .net 1.1?
Domanda
Ho un controllo in cui devo controllare in quale pagina mi trovo, quindi posso impostare una determinata variabile di conseguenza.
string pageName = this.Page.ToString();
switch (pageName)
{
case "ASP.foo_bar_aspx": doSomething(); break;
default: doSomethingElse(); break;
}
funziona bene localmente e su alcuni server di sviluppo, tuttavia quando l'ho messo in funzione, ha smesso di funzionare perché non ottengo ASP.foo_bar_aspx
ma _ASP.foo_bar_aspx
(notare il carattere di sottolineatura nella versione live)
Perché si comporta in questo modo, posso impostarlo in qualche modo?
Soluzione
Non puoi fare affidamento su nomi generati automaticamente. Utilizzare invece i tipi, ad esempio:
if (Page is FooBar) { ... }
Altri suggerimenti
Sembra un modo davvero complicato di ottenere la richiesta corrente. Hai provato a utilizzare invece HttpContext.Current.Request.FilePath
o un'altra variabile HttpContext.Current.Request ...
?