【问题标题】:Asp Buttons not adding to text boxAsp按钮未添加到文本框
【发布时间】:2015-10-13 22:16:48
【问题描述】:

我有一个多行文本框,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 方法中看不到问题,但显然它不好。有没有更有效的方法将一些文本插入现有文本框?

【问题讨论】:

  • 将这些内容设置为文本框不安全...您可以尝试 txtPostContent.Text +=Html.Encode(img) 吗?
  • 字符串的内容似乎没有太大关系,只是一旦点击任何一个按钮,所有四个都停止工作。

标签: html asp.net vb.net


【解决方案1】:

如果您先单击任何按钮(例如 Bold),它将起作用并显示

但任何其他点击都会导致错误。例如,当您单击斜体按钮时

从客户端检测到有潜在危险的 Request.Form 值 (txtPostContent=" ")。

罪魁祸首是您在文本区域()中设置的文本。这是有潜在危险的文字。
您可能想在谷歌上搜索跨站点脚本以获取详细信息。

一旦对所有文本调用 HttpUtility.HtmlEncode 函数,错误就会消失。例如 txtPostContent.Text += HttpUtility.HtmlEncode(粗体)

您可以在

【讨论】:

  • 这很有效。除了现在它不会取代“”带引号。
猜你喜欢
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多