2015-10-13 53 views
0

我有一個多行TextBox,txtPostContest和幾個按鈕,可以點擊到HTML標記添加到文本框(它是人誰也不會知道任何HTML本身)。天冬氨酸按鈕不添加到文本框中

然而,這些按鈕僅添加文本一次,單擊一個後沒有其他人要麼添加文本。

HTML

<div> 
    <label>Post Content:</label> 
</div> 
<div> 
    <asp:Button ID="btnBold" runat="server" Text="Bold" Width="90px" /> 
    <asp:Button ID="btnItal" runat="server" Text="Italics" Width="90px" /> 
    <asp:Button ID="btnLink" runat="server" Text="Link" Width="90px" /> 
    <asp:Button ID="btnImage" runat="server" Text="Image" Width="90px" /> 
</div> 
<div> 
    <asp:TextBox id="txtPostContent" runat="server" Width="600px" Height="400px" TextMode="MultiLine" /> 
</div> 

VB.Net

Partial Class blogmanager 
Inherits System.Web.UI.Page 

Dim bold As String = " <strong> </strong> " 
Dim ital As String = " <em> </em> " 
Dim img As String = " <img src=&quot;PASTE IMAGE FILE HERE&quot; alt=&quot;TYPE ALTERNATE TEXT HERE&quot; height=&quot;250&quot; width=&quot;300&quot;> " 
Dim link As String = "<a href=&quot;PASTE HYPERLINK HERE&quot;>PASTE LINK TEXT HERE</a>" 

Protected Sub btnBold_Click(sender As Object, e As System.EventArgs) Handles btnBold.Click 
    txtPostContent.Text += bold 
End Sub 

Protected Sub btnItal_Click(sender As Object, e As System.EventArgs) Handles btnItal.Click 
    txtPostContent.Text += ital 
End Sub 

Protected Sub btnLink_Click(sender As Object, e As System.EventArgs) Handles btnLink.Click 
    txtPostContent.Text += link 
    txtPostContent.Text = txtPostContent.Text.Replace("&quot;", ControlChars.Quote) 
End Sub 

Protected Sub btnImage_Click(sender As Object, e As System.EventArgs) Handles btnImage.Click 
    txtPostContent.Text += img 
    txtPostContent.Text = txtPostContent.Text.Replace("&quot;", ControlChars.Quote) 
End Sub 

我看不到這個問題的簡單方法text += string但顯然它沒有好。有沒有一種更有效的方法將某些文本置入現有的文本框中?

+0

不安全設置這些內容的文本框...和U可以嘗試txtPostContent.Text + =了Html.Encode(IMG)? – g2000

+0

字符串的內容似乎沒有太大的關係,只是,一旦任何按鈕被點擊,所有四個停止工作。 – Wompguinea

回答

0

如果您單擊任何按鈕,如粗體先,它將工作並顯示

但是,任何其他點擊會導致錯誤。例如,當您單擊斜體按鈕

從客戶端檢測到有潛在危險的Request.Form值(txtPostContent =「」)。

罪魁禍首是您在textarea中設置的文本()。這是潛在的危險文字。
有關詳細信息,您可能需要針對跨站點腳本的Google查詢。

一旦你穿上HttpUtility.HtmlEncode函數調用的所有文字,錯誤就會消失。例如 txtPostContent.Text + = HttpUtility.HtmlEncode(粗體)

您可以在您的<%@頁面中添加tag validateRequest =「false」。但是這是非常不推薦的!

+0

這個工程,主要是。除了現在它不會用引號代替"。 – Wompguinea