2010-10-14 74 views
1

我已经写了一个类库函数来解析一个字符串到控件。它采用当前页面并使用page.ParseControl将字符串解析为控件。在ASP.NET中是否有替代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对象来调用ParseControl。

任何想法如何我可以解决这个问题?

+0

你能不能给你想要做更详细一点? – CodingGorilla 2010-10-14 15:00:02

+0

@编码大猩猩 我正在使用parseControl方法来查看字符串中的标记是否有效。我也在检查我过滤掉的某些标签。 – Andre 2010-10-14 15:09:26

+0

简单地做就足够了:'Page page = HttpContext.Current.CurrentHandler作为Page'。当它不是一个页面时,这会导致'page == null'。 – CodingGorilla 2010-10-14 15:21:34

回答

0

你可以这样做:

Page p = new Page(); 
Control ctrl = p.ParseControl(str);