[英]Rendering web controls as plain text into a string
有什么方法可以呈现在浏览器中显示的文本,而不是底层的html。 我正在尝试在服务器端代码上模拟javascript的.innerText()功能。
例如,以下代码可以渲染“ Hello World”而不是
<div id="Panel1">
<div>Hello World</div>
</div>
这是代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RenderControl.aspx.cs"
Inherits="AccessibleMenu.RenderControl" Trace="true" %>
<!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></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Panel ID="Panel1" runat="server">
<div>Hello World</div>
</asp:Panel>
</form>
</body>
</html>
<script type="text/C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Panel1.RenderControl(htw);
Trace.Write(sb.ToString());
}
</script>
您必须更改HTML以使用文字:
<body>
<form id="form1" runat="server">
<asp:Literal ID="HelloWorld" runat="server"></asp:Literal>
</form>
</body>
您的C#:
protected void Page_Load(object sender, EventArgs e)
{
HelloWorld.Text = 'Your text without HTML':
}
当不需要标记时,PlaceHolder和Literal是您的朋友:)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RenderControl.aspx.cs" Inherits="AccessibleMenu.RenderControl" Trace="true" %>
<!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></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<asp:Literal ID="Literal1" runat="server" Text="Literal1"></asp:Literal>
</asp:PlaceHolder>
</div>
</form>
</body>
</html>
<script type="text/C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
PlaceHolder1.RenderControl(htw);
Trace.Write(sb.ToString());
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.