这种错误一般出现在使用Ckeditor控件编辑文本,或者其他需要向服务器提交脚本的时候。这主要是由于新版的.NetFramework的安全机制决定的。新.NetFramework4.0及4.5(3.5没试过)中都不允许直接向服务器提交脚本代码。
一种比较简单的解决方案是这样的,分两步走:首先设置本页面部队客户端提交的脚本进行验证,也就是在页面的<%@ Page>中加入ValidateRequest="false"一节。但这是不够的,因为客户端提交到服务器之后,首先要经过的时web.config中配置的验证,然后才能到达请求的页面,而在web.config中使用的验证方式是4.0或者4.5或者3.5(这是默认的设置,根据你使用的.netframework版本决定),所以需要修改web.config的配置。找到<httpRuntime targetFramework="4.5" />一节,在其中加上 requestValidationMode="2.0"。结果如下:<httpRuntime targetFramework="4.5" requestValidationMode="2.0" />
经过上面两个步骤就OK了。总结一下:
1.在web.config中加入如下配置
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" />
2.在页面中的page节点中加入ValidateRequest="false",如下所示:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BlogAdd.aspx.cs" Inherits="MessageBoard.BlogAdd" ValidateRequest="false" %>