2015-01-13 19 views
0

我將HTML存儲在數據庫中,並嘗試使用文字控件在頁面上呈現它。問題在於文字不會呈現代碼,而只是在網頁上顯示標記。我已經檢查過HTML,它直接添加到頁面時工作正常,但在設置爲文本文本屬性時不起作用。不顯示呈現的HTML的文字控件

我已經做過這麼多次,在面對我已經重新使用的代碼,但由於某種原因只有標記顯示。

文字頁:

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 

</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentArea" Runat="Server"> 
    <asp:Literal ID="Literal1" runat="server" Mode="PassThrough"></asp:Literal> 
</asp:Content> 

VB代碼:

Private Sub LoadContent() 

     Dim strConnectionString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString 

     Dim conn As SqlConnection = New SqlConnection 

     conn.ConnectionString = ConfigurationManager _ 
       .ConnectionStrings("ConnectionString").ConnectionString 

     Dim cmd As SqlCommand = New SqlCommand 

     cmd.CommandText = ("select HTML from Pages where " & _ 
          "PageName like @SearchText + '%'") 

     cmd.Parameters.AddWithValue("@SearchText", "TheShop") 
     cmd.Connection = conn 
     Dim sb As StringBuilder = New StringBuilder 
     conn.Open() 
     Dim sdr As SqlDataReader = cmd.ExecuteReader 
     While sdr.Read 
      sb.Append(sdr("HTML")) _ 
       .Append(Environment.NewLine) 
     End While 
     conn.Close() 
     Literal1.Text = sb.ToString 


    End Sub 

這是sb.ToString的內容之前,它被添加到文字:

&lt;p&gt;&lt;span style="color:#FF0000"&gt;revergveraer&lt;/span&gt;&lt;/p&gt; 

&lt;p&gt;&lt;span style="color:#FF0000"&gt;&lt;img alt="" src="http://pngimg.com/upload/fish_PNG1156.png" style="height:133px; width:200px" /&gt;rgergerg&lt;/span&gt;&lt;/p&gt; 

這是輸出的HTML並按文字顯示標記:

<p><span style="color:#FF0000">revergveraer</span></p> <p><span style="color:#FF0000"><img alt="" src="http://pngimg.com/upload/fish_PNG1156.png" style="height:133px; width:200px" />rgergerg</span></p> 
+1

我無法重現,我看魚。你是從數據庫還是從顯示的網頁上獲取最後一個片段?你可以發佈數據庫中的確切值還是放入斷點併發布SB.ToString的值?有可能是我們看不到的字符導致您的問題。 – Steve

+0

@Steve我添加了sb.tostring的內容。文字似乎將其轉換爲正確的HTML,但不會呈現它,它只是顯示網頁中的代碼。我也嘗試了使用面板的類似方法,在其上添加標籤併產生相同的結果。 – connersz

回答

4

您的HTML編碼並需要解碼,然後才能通過文字呈現。這很容易與Server.HtmlDecode

Literal1.Text = Server.HtmlDecode(sb.ToString) 

不過,我建議你不要使用Environment.NewLine,你在你的代碼,而是使用:

sb.append("<br/>")