C# 在.NET1.1中,Page.Tostring()的行为有点奇怪?

C# 在.NET1.1中,Page.Tostring()的行为有点奇怪?,c#,.net,.net-1.1,C#,.net,.net 1.1,我有一个控件,我必须检查我在哪一页,所以我可以相应地设置某个变量 string pageName = this.Page.ToString(); switch (pageName) { case "ASP.foo_bar_aspx": doSomething(); break; default: doSomethingElse(); break; } 这在本地和一些开发服务器上运行良好,但是当我将其上线时,它停止了工作,因为我没有得到ASP.foo\u bar\u aspx,而是\u ASP.

我有一个控件,我必须检查我在哪一页,所以我可以相应地设置某个变量

string pageName = this.Page.ToString();
switch (pageName)
{
case "ASP.foo_bar_aspx": doSomething(); break;
default: doSomethingElse(); break;
}
这在本地和一些开发服务器上运行良好,但是当我将其上线时,它停止了工作,因为我没有得到
ASP.foo\u bar\u aspx
,而是
\u ASP.foo\u bar\u aspx
(请注意实时版本中的下划线)
为什么它会这样,我可以设置它吗?

这似乎是获取当前请求的一种非常狡猾的方法。您是否尝试过使用
HttpContext.Current.Request.FilePath
或另一个
HttpContext.Current.Request…
变量?

这似乎是获取当前请求的一种非常狡猾的方法。您是否尝试过使用
HttpContext.Current.Request.FilePath
或另一个
HttpContext.Current.Request…
变量?

您不能依赖自动生成的名称。改用类型,例如:

if (Page is FooBar) { ... }

您不能依赖自动生成的名称。改用类型,例如:

if (Page is FooBar) { ... }
或System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath),如果您只需要文件名,或System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath),如果您只需要文件名