0

我有一个用于在 detailview aspx 页面中提交的基本表单。

在我的 textareas 中包含 html 代码<br>。每当我尝试进行插入时,它都会失败,并且我得到一个通用的:

服务器返回的状态码是500

我知道问题是 html 代码有问题,<br>因为删除后,它插入得很好。

是否有此字段的模板视图设置允许插入时允许 html 标记?

任何指针表示赞赏!

4

2 回答 2

0

在您的页面声明中确保 ValidateRequest="false"...当心,这会为您打开 XSS、跨站点脚本。

确保在将 textarea 中的数据发送到数据库之前对其进行编码,然后当您将其返回显示时,您将对其进行解码。

来自微软。**编码输出

如果输出包含来自用户或其他来源(如数据库)的输入,则使用 HttpUtility.HtmlEncode 方法对输出进行编码。HtmlEncode 替换代表这些字符的 HTML-to-HTML 变量中具有特殊含义的字符。例如,< 替换为 < 并且 " 替换为 "。编码数据不会导致浏览器执行代码。相反,数据被呈现为无害的 HTML。

同样,使用 HttpUtility.UrlEncode 对输出 URL 进行编码(如果它们是从输入构造的)。**

http://msdn.microsoft.com/en-us/library/ff649310.aspx

于 2012-09-27T19:42:40.550 回答
0

asp.net Web 表单(假设是 Web 表单)中文本框中的任何 HTML 都会导致此错误。您需要在 JavaScript 中对其进行编码,将 @Page 属性上的 ValidateRequest 属性设置为 false,或者使用其他一些实用程序(那里有一些,不知道具体的,也许是 HTML 敏捷包?)。

于 2012-09-27T14:56:22.840 回答