在没有ViewState ASP.Net的情况下获取当前页面的HTML

4 html asp.net rendering

有什么办法可以让我获得当前页面的HTML.通过当前页面,我的意思是说我正在使用Default.aspx并希望通过在其上提供一个按钮来获取HTML.

怎么弄它.

Luk*_*keH 20

编辑以回应澄清要求

您可以覆盖页面的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
}
Run Code Online (Sandbox Code Playgroud)

  • 也许他/她不喜欢你:) (2认同)