Asp.NET Web表单 - 改变"<"和">"字符到他们的实体

时间:2016-03-30 22:53:59

标签: c# asp.net visual-studio

我是C#和Asp.NET的初学者,我已经开始使用Asp控件等。每当我点击按钮 btWyswietl 我想要所有角色">"和"<"从文本字段 tbTekst 更改为其实体f.e。:

I love < and >要更改为:I love &lt; and &gt;

我的表格是这样的:

<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&#347;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);
    }
}

但它不起作用。有什么想法吗?

1 个答案:

答案 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();
        }
    }