asp.net中Post表单保存页面状态并输出源码的实现方法

  Html页面

  

复制代码 代码如下:

  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"

  ValidateRequest="false" %>

  <%@ Register Src="UserControl/Ucone.ascx" TagName="Ucone" TagPrefix="uc1" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <title>页面提交后提取Html源码(保持状态)</title>

  <script type="text/javascript">

  function getAllCode_IE() {

  document.getElementById("hid_html").value=document.documentElement.outerHTML;

  }

  function getAllCode_FireFox(){

  return document.body.innerHTML.toString();

  }

  </script>

  </head>

  <body>

  <form id="form1" runat="server">

  <div>

  <uc1:Ucone ID="Ucone1" runat="server" />

  </div>

  </form>

  </body>

  </html>

  用户控件

  

复制代码 代码如下:

  <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Ucone.ascx.cs" Inherits="UserControl_Ucone" %>

  <asp:TextBox ID="txtName" runat="server"></asp:TextBox>

  <asp:Button ID="btnAdd" runat="server" Text="Add" />

  <input type="hidden" id="hid_html" name="hid_html" />

  <div id="div_inner_input" runat="server">

  </div>

  用户控件后台:

  

复制代码 代码如下:

  public partial class UserControl_Ucone : System.Web.UI.UserControl

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  this.btnAdd.Attributes.Add("onclick", "return getAllCode_IE();");

  }

  protected override void OnInit(EventArgs e)

  {

  base.OnInit(e);

  this.btnAdd.Click += new EventHandler(btnAdd_Click);

  }

  void btnAdd_Click(object sender, EventArgs e)

  {

  this.div_inner_input.InnerText = Request.Form["hid_html"].ToString();

  }

  }

  作者: Ruanyiniu(Ryan)