.net提交HTML元素到后台,遇到Request报错 解决方案

时间:2021-03-01 04:27:20

对于.NET MVC 项目来说,在Controller中对应的Action方法上打上标签:

 [ValidateInput(false)] 

在MSDN上:HttpRequest 类使用输入验证标志来跟踪是否对通过 CookiesForm 和 QueryString 属性访问的请求集合执行验证。ValidateInput 方法设置这些标志,以便在调用 CookiesForm 或 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>

影响范围是整个项目。