如何获取当前页面的HTML?

时间:2009-10-19 12:33:01

标签: asp.net

我想解析当前页面的html。 如何在asp.net中获取当前页面的html?

提前致谢。

3 个答案:

答案 0 :(得分:5)

客户端

在Internet Explorer中

右键点击浏览器 - >查看来源

在firefox中

右键点击浏览器 - >查看页面来源

服务器端

您可以覆盖页面的render方法以捕获服务器端的HTML源代码。

protected override void Render(HtmlTextWriter writer)
{
    // setup a TextWriter to capture the markup
    TextWriter tw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(tw);

    // render the markup into our surrogate TextWriter
    base.Render(htw);

    // get the captured markup as a string
    string pageSource = tw.ToString();

    // render the markup into the output stream verbatim
    writer.Write(pageSource);

    // remove the viewstate field from the captured markup
    string viewStateRemoved = Regex.Replace(pageSource,
        "<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\".*?\" />",
        "", RegexOptions.IgnoreCase);

    // the page source, without the viewstate field, is in viewStateRemoved
    // do what you like with it
}

答案 1 :(得分:2)

覆盖渲染方法并使用您自己的HtmlWriter调用base.Render。

答案 2 :(得分:1)

真的想要解析HTML吗?这是一项棘手的业务。如果你不是绝对必须这样做,我会通过客户端使用DOM方法来避免它(如果客户端解决方案是可接受的)。如果您正在进行批次,可以考虑jQueryPrototype或其他一些工具来提供帮助。