我是C#和Asp.NET的初学者,我已经开始使用Asp控件等。每当我点击按钮 btWyswietl 我想要所有角色">"和"<"从文本字段 tbTekst 更改为其实体f.e。:
I love < and >
要更改为:I love < and >
我的表格是这样的:
<form id="formDruga" runat="server">
<table>
<tr>
<td>Podaj dowolny tekst:</td>
</tr>
<tr>
<td><asp:TextBox ID="tbTekst" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td><asp:Button ID="btWyswietl" runat="server" Text="Wyświetl tekst" OnClick="btWyswietl_Click" /></td>
</tr>
<tr>
<td>Tekst po przetworzeniu:</tr>
<tr>
<td><asp:Label ID="lbTekstPo" runat="server"></asp:Label></td>
</tr>
</table>
</form>
我的 .aspx.cs 如下所示:
public partial class Druga : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lbCzas.Text = DateTime.Now.ToString();
}
protected void btWyswietl_Click(object sender, EventArgs e)
{
lbTekstPo.Text = Server.HtmlDecode(tbTekst.Text);
}
}
但它不起作用。有什么想法吗?
答案 0 :(得分:0)
您的某些代码没有匹配的开始/结束标记,即
<td>Tekst po przetworzeniu:</tr>
除此之外,你需要用html元素(如div)包含html编码的文本。这可以通过点击方法完成:
protected void btWyswietl_Click(object sender, EventArgs e)
{
var encoded = HttpUtility.HtmlEncode(tbTekst.Text);
using (System.IO.StringWriter stringWriter = new StringWriter())
{
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.WriteEncodedText(encoded);
writer.RenderEndTag();
}
lbTekstPo.Text = stringWriter.ToString();
}
}