如何在ASP.Net页面中解码数据库中的HTML内容

时间:2016-07-09 04:31:44

标签: c# html asp.net sql-server

我在ASP.net页面中从我的Db中检索了HTML内容,但所有标签都显示在我的页面中,如下所示

<p>fdvdfb <strong>fbgdfbd</strong> <em>fbfgbggggggggggggggggggggg</em></p>
<p>iuiononknonbn</p>
<p>khbkinniln</p>

但这不公平!如何删除这些标签?并在插入时显示我的文字?

我的代码是:

string query = "SELECT TOP 1[Text] FROM [News] ORDER BY Id DESC";
string conString = ConfigurationManager.ConnectionStrings["mycs"].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
    using (SqlCommand cmd = new SqlCommand(query, con))
    {
        con.Open();
        using (SqlDataReader sdr = cmd.ExecuteReader())
        {
            if (sdr.Read())
            {
                txtHTMLContent.Text = sdr["Text"].ToString();
            }
            sdr.Close();
        }
        con.Close();
    }
}

<asp:TextBox ID="txtHTMLContent" runat="server" TextMode="MultiLine" Width="100%"/>

3 个答案:

答案 0 :(得分:0)

如果您使用Razor,可以这样做:

@Html.Raw(yourvariable)

否则在ASP.NET中你可以尝试:

element.InnerHtml = Server.HtmlDecode(yourText);

答案 1 :(得分:0)

.aspx上的数据绑定到dataSource。你可以用声明的方式来做。

<asp:SomeKindOfRepeater runat="server" DataSourceID="sqlSourceName">
    <SomeKindOftemTemplate>
       <p>fdvdfb <strong>fbgdfbd</strong> <em><%#Eval("something")%></em></p>
       ...and so on
    </SomeKindOftemTemplate>
</asp:SomeKindOfRepeater>
<asp:SomeDataSource ID="sqlSourceName" runat="server" ...>
...
</asp:SomeDataSource>

答案 2 :(得分:0)

我尝试了一行代码,但这对我有用。

 string str = @"<p>fdvdfb <strong>fbgdfbd</strong> <em>fbfgbggggggggggggggggggggg</em></p>
             <p>iuiononknonbn</p>
             <p>khbkinniln</p>";

 txtHTMLContent.Text = Regex.Replace(str, "<.*?>", string.Empty);

OutPut:

首先我在Label上输出,第二次在TextBox上输出。

enter image description here