有一个HtmlForm htmlForm ,包含runat="server"代码,如下红色代码所示,我想用 string str=htmlForm.innerHtml取得代码文本。可是提示错误:“无法获取 innerHtml 的内部内容,因为该内容不是文本。”
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" Height="641px" Width="511px"></asp:TextBox>
</div>
</form>
我用网上说的方法,StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
htmlForm .RenderControl(htw);
然后调用Response.Write(sb.ToString());,得到的文本是下面兰色代码所示。可这并不是我想要的结果。我如何才能最得上面包含runat="server"代码(上面红色部分)
<form name="form1" method="post" action="" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTEzMzE5MDUyNjFkZFGxJW7d6YIoAtGbIeoc7bamtFmTjnBEeVp/LvrtDyoy" />
</div>
<div>
<input name="TextBox1" type="text" value="" id="TextBox1" />
</div>
</form>
------解决方案--------------------------------------------------------
这个被编译到dll中了,哪里来的什么“上面包含runat="server"代码(上面红色部分)”啊?
如果想得到,你干脆把这个文件保存为资源文件然后读取文件好了。
------解决方案--------------------------------------------------------
所谓“得到”,是服务器输出html流,还是客户端DOM操作?你能否说出来是哪一个阶段?
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
你新建一个aspx页面不写任何东西
在Page_Load中遍历controls
- C# code
foreach (Control c in this.Controls) { if (c.ClientID == "form1") { string text = (c as System.Web.UI.HtmlControls.HtmlForm).InnerHtml; //(c as System.Web.UI.HtmlControls.HtmlForm).InnerHtml="test";你也可以赋值。 Response.Write(text); Response.End(); } }