在.net 1.1中,Page.Tostring()的行为有点奇怪吗?
时间:2020-03-06 15:00:56 来源:igfitidea点击:
我有一个控件,可以在其中检查我所在的页面,因此可以相应地设置某个变量。
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
(请注意实时版本中的下划线)
为什么会这样,我可以以某种方式设置它吗?
解决方案
这似乎是获取当前请求的一种非常狡猾的方法。我们是否尝试过使用HttpContext.Current.Request.FilePath或者另一个HttpContext.Current.Request ...变量?
我们不能依靠自动生成的名称。请改用类型,例如:
if (Page is FooBar) { ... }