我有一个控件,我必须在哪个页面检查,所以我可以相应地设置一个变量。
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
(注意实时版本中的下划线)
它为什么这样做,我能以某种方式设置吗?
答案 0 :(得分:2)
你不能依赖自动生成的名字。请改用类型,例如:
if (Page is FooBar) { ... }
答案 1 :(得分:1)
这似乎是获取当前请求的一种非常狡猾的方式。您是否尝试过使用HttpContext.Current.Request.FilePath
或其他HttpContext.Current.Request...
变量?