插入数据库时多次替换文本框中的 HTML 标记

本文关键字:HTML 标记 文本 替换 数据库 插入 | 更新日期: 2025-05-08 15:55:35

所以,我知道如何使用像br这样的东西来做到这一点

cmd.Parameters.AddWithValue("@text", TextBox1.Text.Replace("'n", "<br/>"));

但是如何向其添加多个替换项?我试过了..

cmd.Parameters.AddWithValue("@text", TextBox1.Text.Replace("'n", "<br/>").Replace("'b", "<b/>"));

但它不起作用,给了我一个错误

@Edit

我得到的错误

A potentially dangerous Request.Form value was detected

这是我在文本框内的内容

test</b>

插入数据库时多次替换文本框中的 HTML 标记

如果你想让你的文本框值像这样,你可以尝试<httpRuntime requestValidationMode="2.0" />添加到你的 web.config。或者,也许将<pages validateRequest="false" />添加到 web.config 内的 <system.web> 块将帮助您摆脱错误消息。

顺便说一句,如果你想用'n替换</br>,你的做法是错误的。 .Replace("'n", "</br>")'n替换为</br>

在我看来,

您只需要禁用验证。将此添加到 aspx 页的顶部:

<%@ Page validateRequest="false" %>

请记住,这是默认的 true,以保护您的页面免受脚本攻击。阅读此内容以获取更多信息:http://www.asp.net/whitepapers/request-validation

但是对于您正在尝试做的事情,这应该可以解决问题,尽管我不建议在关注安全性的应用程序中使用。

编辑

为了完整起见,我认为您可以在不禁用验证的情况下执行其他操作。

HttpUtility.HtmlEncode(TextBox1.Text).Replace("'n", "<br/>").Replace("'b", "<b/>"));

顺便说一句,我认为最后一个替换不会对您发布的示例文本执行任何操作,但这超出了我认为的问题范围。