Page.Tostring()在.net 1.1中表现得有点奇怪?
题
我有一个控件,我必须在哪个页面检查,所以我可以相应地设置一个变量。
string pageName = this.Page.ToString();
switch (pageName)
{
case "ASP.foo_bar_aspx": doSomething(); break;
default: doSomethingElse(); break;
}
这在本地和一些开发服务器上工作正常,但是当我把它放到现场时,它停止工作,因为我没有得到 ASP.foo_bar_aspx
但 _ASP.foo_bar_aspx
(注意实时版本中的下划线)
它为什么这样做,我能以某种方式设置吗?
解决方案
你不能依赖自动生成的名字。请改用类型,例如:
if (Page is FooBar) { ... }
其他提示
这似乎是获取当前请求的一种非常狡猾的方式。您是否尝试过使用 HttpContext.Current.Request.FilePath
或其他 HttpContext.Current.Request ...
变量?
不隶属于 StackOverflow