【发布时间】:2010-10-14 14:57:18
【问题描述】:
我编写了一个类库函数,将字符串解析为控件。它获取当前页面并使用 page.ParseControl 将字符串解析为控件。
System.Web.UI.Page page = (System.Web.UI.Page) HttpContext.Current.CurrentHandler;
System.Web.UI.Control ctrl = page.ParseControl(str);
它在大多数情况下都可以正常工作,除非此函数的调用者是 Ajax Web 服务,在这种情况下,我会收到以下错误:无法将“HandlerWrapperWithSession”类型的对象转换为“System.Web.UI.Page”类型'。我显然收到了这个错误,因为 CurrentHandler 不是 Page 类型,但我需要一个 Page 对象来调用 ParseControl。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
您能详细说明您要做什么吗?
-
@Coding Gorilla 我正在使用 parseControl 方法查看字符串中的标记是否有效。我还在检查我要过滤掉的某些标签。
-
只需这样做就足够了:
Page page = HttpContext.Current.CurrentHandler as Page。这将导致page == null不是真正的页面。 -
很遗憾没有。现在我得到错误:对象引用未设置为对象的实例。这真的让我想知道为什么 parseControl 不是静态的。
标签: asp.net ajax web-services parsecontrol