我正在尝试抓取我自己的 ASPX 页面,以便将其输入 HTML Agility Pack 解析器。我已经尝试了所有方法,并且在这种情况下我唯一可以使用字符串。
我正在使用以下代码将外部控件转换为字符串:
static string ConvertControlToString(Control ctl)
{
string s = null;
var sw = new StringWriter();
using (var w = new HtmlTextWriter(sw))
{
ctl.RenderControl(w);
s = sw.ToString();
}
return s;
}
这个概念有效,除了一些恼人的故障。我有时会得到“控件必须在带有 runat=server 的表单内”。它似乎是由导致回发的控件触发的 - 按钮、更新面板等。
需要明确的是,我的页面是一种形式,所以这不是问题。
我需要尝试解决我的问题,无论是让 HTML 敏捷包解析器以另一种方式工作,还是将代码转换为没有错误的字符串。没关系 - 我只需要让事情正常进行。