对于.NET MVC 项目来说,在Controller中对应的Action方法上打上标签:
[ValidateInput(false)]
在MSDN上:HttpRequest 类使用输入验证标志来跟踪是否对通过 Cookies、Form 和 QueryString 属性访问的请求集合执行验证。ValidateInput 方法设置这些标志,以便在调用 Cookies、Form 或 QueryString 属性的 get 访问器时执行输入验证。验证的工作原理是,将所有输入数据与具有潜在危险的数据的硬编码列表进行对照检查。
当设为FALSE时,仅仅影响一个方法。
另外,
.net 在 code-behind 的项目中 :
只要在页头的指令中加ValidateRequest="false" 就可以解决,如下所示:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xxx.aspx.cs" Inherits="xxx" ValidateRequest="false" %>
这样设置,影响到一个.cs文件。
最不推荐的是下面这种:
查看配置文件中是否有同样的设置,如:<pages validateRequest="false"></pages>
若上述操作后仍然报错,可在配置文件中加入节如下:
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
<pages validateRequest="false">
</pages>
</configuration>
影响范围是整个项目。