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

对于.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>

 影响范围是整个项目。

posted @ 2016-08-04 17:35  Eric-Lee  阅读(294)  评论(0编辑  收藏  举报